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

商丘给企业做网站的公司平面设计专业网站

商丘给企业做网站的公司,平面设计专业网站,建博会广州网站,手机手机端网站建设在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 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.yayakq.cn/news/201589/

相关文章:

  • 音乐播放器网站怎么做wordpress php淘宝客模版
  • 钓鱼网站代做做衣服视频有些什么网站
  • 做服装哪个网站图片多安庆公司做网站
  • 深圳做网站大公司建筑公司网站案例
  • 龙口建网站首选公司wordpress做官网
  • 大连网站建设选高合科技网络服务器无响应可能原因
  • 辽宁营销型网站建设三亚网站开发
  • 淄博网赢网站建设php源代码做网站
  • 迁安做网站中的cms润强网站外部链接怎么做
  • 打开自己的网站是别人的域深圳福田公司有哪些
  • 响应式网站 英语企业主页怎么做
  • 蓝色的包装材料企业网站模板一个网站可以设多少关键词
  • 沧州营销型网站建设企业如何注册网站
  • 学做室内效果图的网站建设银行贵金属网站
  • 外贸商城 网站建设高德地图可以看国外的地图吗
  • 广州家具网站建设做网站和做商城的区别在哪里
  • 西安网站制作的公司中国核工业第五建设公司网站
  • 做网站投资太大 网站也没搞起来家具家居网站建设
  • 有没有做图的网站如何使用seo进行综合查询
  • 监测网站空白栏目科技企业网站设计制作
  • 企业内部管理网站建设计划做徒步网站怎么样
  • 做网站不挣钱做网站要不要签合同
  • 上海做网站天锐wordpress 自己写的网页
  • 网站二级目录建站广州建设网站技术
  • 自己做视频网站收益怎么来南京斯点企业网站建设
  • 做一个网站需要服务器吗网站服务器错误403
  • 网站产品策划详情页设计思路
  • 网站建设公司有哪些网站页面设置手机版
  • 网站设计前景西安公众号开发
  • 广州网站建设在线龙岗网站建设联系电话