--通过服务器时间 获得明天零点的时间戳
function GetNextDayZeroTime(timeNum)
--获得当前服务器的时间
local t1 = timeNum
if not t1 then
t1 =SystemTime()
end
--获得时间格式
local tab = os.date("*t",t1)
tab.hour = 23;
tab.min = 59;
tab.sec = 59;
--获得第二天零点的时间戳
local t2 = so.time(tab) + 1
return t2
end
--通过服务器时间 获得当天零点的时间戳 -timeNum
function GetNowDayZeroTime(timeNum)
--获得当前服务器的时间
local t1 = timeNum
if not timeNum then
t1 =SystemTime()
end
--获得时间格式
local tab = os.date("*t",t1)
tab.hour = 0
tab.min = 0
tab.sec = 0
--获得第二天零点的时间戳
local t2 = os.time(tab)
return t2
end
-- 小时:分钟:秒
function SecondToStrFormat( time )
local hour = math.floor(time/3600);
local minute = math.fmod(math.floor(time/60), 60)
local second = math.fmod(time, 60)
return string.format("%02d:%02d:%02d", hour, minute, second), hour, minute, second
end
--显示时间倒计时 --ignoreWeek true是否忽略周末倒计时 false就是周倒计时 --ignoreMonth true是否忽略月底,false是月倒计时 updateTime更新时间 有些更新变成了凌晨五点
function ShowTimeCutDown(ignoreWeek,ignoreMonth,updateTime)
if not updateTime then
updateTime = 0
end
--获得当前服务器的时间
local t1 =SystemTime()
--获得时间格式
local tab = os.date("*t",t1)
local t2 = 0
--当时间小于更新时间
if tab.hour < updateTime then
t2 = GetNowDayZeroTime(t1) + updateTime*3600
else
--获得第二天零点的时间戳
t2 = GetNextDayZeroTime(t1) + updateTime*3600
end
local leveDay =0
--到本周末还有多少时间
if not ignoreWeek then
--周日
if tab.wday == 1 then
if tab.hour < updateTime then
leveDay = 6
else
leveDay = 7
end
elseif tab.wday == 2 then
--周一
if tab.hour < updateTime then
leveDay = 7
else
leveDay = 1
end
else
if tab.hour < updateTime then
leveDay = tab.wday -2
else
leveDay = tab.wday-1
end
end
leveDay = 7 - leveDay
end
if not ignoreMonth then
--到月底的时间
leveDay = tab.day
--判断到月底的天数
local days = GameDate("%d",GameTime({year=GameDate("%Y"),month=GameDate("%m")+1,day=0}))
--每个月的第一天特殊判断
if leveDay == 1 then
if tab.hour < updateTime then
leveDay = 0
else
leveDay = days-leveDay
end
elseif tonumber(leveDay) == tonumber(days) then
--每个月的最后一天
if tab.hour < updateTime then
leveDay = 1
else
leveDay = 0
end
else
leveDay = days-leveDay+1
end
end
--转换显示格式
local str =""
local diff = os.difftime(t2,t1)
local all,hour,minute,second = SecondToStrFormat(diff)
if(leveDay>0)then
str = StrLang("%d天%d小时",leveDay,hour)
else
str = all
end
return str,diff
end