笔者咋GO的时间计算中也是经历了一些小坑,下面笔者说一下 如何计算任意一个时间点之间相距多久 -年 月 日 小时
笔者就以小时为例子 计算出任意两个时间点之间相隔多少天
var Day_ int=0//记录玩家相距有多少天
list := time.Unix(Time, 0)//time是一个int64型的时间戳 大家可以随便放一个值 这里我们放进去一个昨天的时间戳
fmt.Println(list.Format("2006-01-02 15:04:05"),"=============之前的论剑时间小时是")
fmt.Println(list.Month(),"==月份")//我们检查一下打印的时间 用于检测下面放下计算出是对的还是错的
fmt.Println(list.Day(),"==天数")
fmt.Println(list.Hour(),"==小时")
now := time.Now()//取到当前的时间点
subM := now.Sub(list)//通过这个方法我们可以将两个事件差值计算出来
fmt.Println(int(subM.Hours()), "Hours")//我们打印一下相距的小时数
fmt.Println(now.Format("2006-01-02 15:04:05"),"=============系统当前时间的论剑时间小时是")
fmt.Println(now.Month(),"==月份")
fmt.Println(now.Day(),"==天数")
fmt.Println(now.Hour(),"==小时")
//思路 通过减去 今天的时间 /24算出来之前有多少天
//time_hour:=int(now.Hour())-int(list.Hour())
time_hour:=int(subM.Hours()-int(new.now())---我们将相距的时间转化成int型的
fmt.Println(time_hour, "相差的小时数")//打印出相距多久的小时数
if( time_hour <=0 ){//如果玩家之前的差值与今天的时间相互减去 小于等于0 说明玩家现在是在今天
Day_=0//所以天数相差0天
}else {//如果差值大于0 说玩家的天数相差的起码有一天之前上
Day_= time_hour/24//s算出来之间相差多少天
if((time_hour%24)>0){//还有剩余的消失 说明是 还有一天 就那就加上
Day_=Day_+1
}
}
最后算出来的 Day_ 的这个变量就是这两个时间相距多久的天数 通过这个可以算出来 年月日的相差时间