当前位置: 首页 > news >正文

大连做网站的cms建站

大连做网站的,cms建站,房租 做网站,前几年做那个网站能致富在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文讲解一下 time 包中的 time.Duration 类型。 time.Duration time.Duration 类型是…

在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文讲解一下 time 包中的 time.Duration 类型。

time.Duration

time.Duration 类型是一个有符号的 int64 类型,以纳秒为单位,用来表示两个时间点之间的时长。类型定义如下:

type Duration int64

拥有的方法如下:

  • func (d Duration) Hours() float64,返回持续的时间,以小时为单位。
  • func (d Duration) Minutes() float64,返回持续的时间,以分钟为单位。
  • func (d Duration) Seconds() float64,返回持续的时间,以秒为单位。
  • func (d Duration) Milliseconds() int64,返回持续的时间,以毫秒为单位。
  • func (d Duration) Microseconds() int64,返回持续的时间,以微秒为单位。
  • func (d Duration) Nanoseconds() int64,返回持续的时间,以纳秒为单位。
  • func (d Duration) String() string,返回一个字符串类型的持续的时间,格式为 “72h3m0.5s”。示例如下:
package mainimport ("fmt""time"
)func main() {a := time.Duration(3) * time.Hourfmt.Println(a.Hours())        // 3fmt.Println(a.Minutes())      // 180fmt.Println(a.Seconds())      //10800fmt.Println(a.Milliseconds()) //10800000fmt.Println(a.Microseconds()) //10800000000fmt.Println(a.Nanoseconds())  //10800000000000fmt.Println(a.String())       //3h0m0s
}
  • func (d Duration) Round(m Duration) Duration,返回将 d 四舍五入到 m 的最接近倍数的结果。通过示例理解一下:
package mainimport ("fmt""time"
)func main() {a := time.Duration(10) * time.Minute// 结果为 10,10 正好是 1 的整数倍fmt.Println(a.Round(time.Duration(1) * time.Minute))// 结果为 9,3 的 3 倍是 9,3 的 4 倍是 12,9 和 10 离得更近fmt.Println(a.Round(time.Duration(3) * time.Minute))// 结果为 12,4 的 2 倍是 8,4 的 3 倍是 12,距离一样近往上入fmt.Println(a.Round(time.Duration(4) * time.Minute))// 结果为 10,10 正好是 5 的整数倍fmt.Println(a.Round(time.Duration(5) * time.Minute))// 结果为12, 6 的 1 倍是 6,6 的 2 倍是 12,10 离 12 更近fmt.Println(a.Round(time.Duration(6) * time.Minute))
}
  • func (d Duration) Truncate(m Duration) Duration,用于将 d 截断到 m 最近整数倍。通过示例理解一下:
package mainimport ("fmt""time"
)func main() {a := time.Duration(10) * time.Minute// 结果为 10,10 正好是 1 的整数倍fmt.Println(a.Truncate(time.Duration(1) * time.Minute))// 结果为 9,3 的 3 倍是 9,最接近 10fmt.Println(a.Truncate(time.Duration(3) * time.Minute))// 结果为 8,4 的 2 倍是 8,最接近 10fmt.Println(a.Truncate(time.Duration(4) * time.Minute))// 结果为 10,10 正好是 5 的整数倍fmt.Println(a.Truncate(time.Duration(5) * time.Minute))// 结果为 6,6 的 1 倍是 6,最接近 10fmt.Println(a.Truncate(time.Duration(6) * time.Minute))// 结果为 0,11 的 1 倍是11,大于了 10fmt.Println(a.Truncate(time.Duration(11) * time.Minute))
}

加减法运算

因为 time.Duration 表示的是时间段,可以对 time.Duration 类型的值进行加减法运算,例如:

package mainimport ("fmt""time"
)func main() {a := time.Duration(10) * time.Minuteb := time.Duration(10) * time.Secondfmt.Println(a + b)fmt.Println(a - b)
}

http://www.khdw.cn/news/30027.html

相关文章:

  • c 做网站怎么发布百度排名服务
  • 做电商需要哪些网站有哪些在线看网址不收费不登录
  • 如何学做网站全套教程网络营销工作内容
  • 网站建设中英文表述网络销售有哪些
  • 唐山网站提升排名2024年小学生简短小新闻
  • net后缀做公司网站新东方一对一辅导价格
  • wordpress如何直接设置下载武汉搜索引擎排名优化
  • 江西建设网站站外推广渠道有哪些
  • wordpress 热门排行常州seo
  • 三亚北京网站建设百度业务推广
  • 九江网站建设公司网站建设的整体流程有哪些
  • 中山建设网站官网深圳哪里有网络推广渠避
  • 罗湖做网站58软文案例500字
  • 单页购物网站源码seo推广主要做什么
  • 小组动态网站开发实训心得总结学网络营销好就业吗
  • 网站建设公司重庆云南疫情最新数据消息中高风险地区
  • 成都展厅设计企业宁波seo外包推广平台
  • 阀门网站设计怎么样把广告做在百度上
  • 手机网站建设教程视频教程pc端网页设计公司
  • 深圳电子商务网站建设seo基础入门
  • 腾讯企点官网入口长沙seo就选智优营家
  • 金蝶软件官网下载网站推广优化排名
  • 网页制作怎么学靠谱seo外包定制
  • 能否提供代码 网站建设做公司网站的公司
  • 赤峰网站建设企业网站建设开发简介
  • 内江市网站建设国内免费推广产品的网站
  • 双井网站建设昆山网站制作哪家好
  • 如何制作wordpress网站地图网站怎么做到秒收录
  • h5是什么网站上面做的站长之家网站流量查询
  • 物流网站建设计划书四种营销策略