关于Go语言中 计算两个时间差相隔有多少天

笔者咋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_ 的这个变量就是这两个时间相距多久的天数    通过这个可以算出来 年月日的相差时间

 

你可能感兴趣的:(go)