-- 输入参数 年(4位),月,日,时,分,秒
-- 输出参数 年(4位),月,日,时,分,秒
local function localtime(y, m, d, hh, mm, ss )
hh=hh+8 --格林威治时间 + 8 小时 = 北京时间
if ( hh< 24 ) then--没有跨天,则计算完成
return y, m, d, hh, mm,ss
end
-----下面是跨天后的计算--------------------
hh =hh-24
d =d+1-- 日期加一天
--按月判断
if (m ==4)or (m==6) or (m==9) or (m==11) then--跨小月的判断
if d > 30 then
d = 1
m = m+1
end
elseif (m==1) or (m==3) or (m==5) or (m==7) or (m==8) or (m==10)then --跨大月的判断
if d > 31 then
d = 1
m = m+1
end
elseif m==12then --12月,要判断是否跨年
if d>31 then
y = y+1
d = 1
m = 1
end
elseif m==2then --2月,要判断是否是闰年
if( ( y@0 == 0 )or-- 能被400整除,一定是闰年
( y%4 ==0 ) and ( y0 ~=0 ) ) then--能被4整除,但不能被100整除,一定是闰年
if( d>29 )then--闰年2月,可以有29号
m = 3
d = 1
end
elseif ( d>28 )then--非闰年2月,可以有28号
m = 3
d = 1
end
end
return y, m,d, hh, mm, ss --计算完成,开始输出
![格林威治时间转换为北京时间 格林威治时间转换工具](http://img.aihuau.com/images/31101031/31010527t01118510ed0ac68c68.jpg)
end