#北京時間需加上8小時
bj = 8*3600
def time_stamp(times):
#一天總秒數
nonDaySeconds = 24*3600
leapmonths = [31,29,31,30,31,30,31,31,30,31,30,31]
nonleapmonths = [31,28,31,30,31,30,31,31,30,31,30,31]
#四年為一個周期,從1972年開始
fourYearDays = (366+365+365+365)
year = 0
currentDays = 0
sumDay = 0
month = 0
#計算自1970年以來經過的天數
nDays = int(times/nonDaySeconds)
#計算當天已經過了多少毫秒
currentDaySeconds = times%nonDaySeconds
#計算自1973年以來經過的多少個完整4年周期,並計算上一個閏年是哪一年
lastLeapYear = int((nDays-(365+365+366))/fourYearDays)*4+(1970+2)
#計算不足一個4年周期的天數
lDays = (nDays-(365+365+366))%fourYearDays
#print(lastLeapYear,lDays)
#判斷當前屬於四年周期的哪一年,並計算當年已經走過的總天數
if lDays < 365:
year = 1
currentDays = lDays
elif lDays< (365+365):
year = 2
currentDays = lDays - 365
elif lDays < (365+365+365):
year = 3
currentDays = lDays - 365 - 365
elif lDays < (365+365+365+366):
year = 4
currentDays = lDays - 365 - 365 - 365
currentYear = lastLeapYear + year
#print(currentYear,currentDays)
#計算幾月幾號
if year == 4:
#如果是閏年
for i in range(len(leapmonths)):
if sumDay <= currentDays:
sumDay += leapmonths[i]
month += 1
day = (currentDays - sumDay + 1) + leapmonths[month-1]
else:
for i in range(len(nonleapmonths)):
if sumDay <= currentDays:
sumDay += nonleapmonths[i]
month += 1
day = (currentDays - sumDay + 1) + nonleapmonths[month-1]
#print(month,day)
#計算時分秒
currentHour = int(currentDaySeconds/(60*60))
currentMinute = int((currentDaySeconds%(60*60))/60)
currentSeconds = (currentDaySeconds%(60*60))%60
#print(currentHour,currentMinute,currentSeconds)
print(str(currentYear)+' 年 '+judgetime(month)+' 月 '+judgetime(day)+' 日 '+
judgetime(currentHour)+':'+judgetime(currentMinute)+':'+judgetime(currentSeconds))
def judgetime(value):
if value < 10:
return '0' + str(value)
else:
return str(value)