根据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
}
输出结果为: