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
}

输出结果为:

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

你可能感兴趣的:(go语言小案例)