golang小案例 —— 1970 年1月1日到现在的时间秒数计算出现在的日期时间

 根据1970 年1月1日到现在的时间秒数计算出CHINA现在的日期时间(考虑闰年,平年,时区等因素)

package main

import (
	"time"
	"fmt"
)

func main() {

	ret :=time.Now().Unix()


	var days = int(ret / ( 24 * 3600 ))
	ret = ret  % ( 24 * 3600 )
	var hours =int( ret / 3600 + 8 )
	ret = ret % 3600
	var minute = int( ret / 60 )
	var second = int( ret % 60 )


	var year,months,day= getYMD( days )


	fmt.Printf("CHINA现在的时间是:%d年:%d月:%d日:%d点:%d分:%d秒",year,months,day,hours,minute,second)

}
func getYMD(days int)(year int,months int,day int ) {
	var yuefen  = [12]int{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
	var yuefen1 = [12]int{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
	year = 1970
	months = 1
	day = 1
	var temp int
	var i int

	for i = days; i > 367; i-- {
		if year%4 == 0 && year%100 != 0 || year%400 == 0 {
			year = year + 1
			i = i - 366+1

		} else {
			year = year + 1
			i = i - 365+1
		}
	}


	 if year%4 == 0 && year%100 != 0 || year%400 == 0 {
			for q := 0; q < 12; q++ {
				temp += yuefen1[q]

				if temp > i {
					months = q + 1
					day = i-(temp - yuefen1[q])+1
				}
				break //跳出循环结束,返回值
			}
			}else{

			for q := 0; q < 12; q++ {
				temp=temp + yuefen[q]

				if temp > i {
					months=q+1
					day = i-(temp - yuefen[q])+1
						break   //跳出循环结束,返回值
			}
				}




		}

	return
}

输出结果为:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值