文章编辑人员:雪舞
内容测试时间:2023-4-21 10:34:29
测试版本:新武侠世界
获取当前时间:
local nCurrentTime = tonumber(date("%Y%m%d",GetGameTime(sceneId,selfId)))
输出内容:20230421
增加两天后过期的函数:
local nTime = LuaFnDayTime2DateTime(sceneId,selfId,getNewDate(sceneId,GetDayTime(),2))
输出内容:20230423
--计算过期时间函数
function getNewDate(sceneId,nTime,nCount)
if not nTime or not nCount then
return 0
end
local nYear = floor(nTime/1000)
local nDay = mod(nTime,1000)
nDay = nDay + nCount
if nDay <= 365 then
local nTime_R = nTime + nCount
return nTime_R
else
if mod(nYear,4) ~= 0 then
local nTime_R = floor(nTime/1000) + 1
nDay = nDay - 365
-- nYear = nYear * 1000 + nDay
nYear = nTime_R * 1000 + nDay --修复12月跨年bUG 雪舞
return nYear
else
--闰年
local nTime_R = nTime + nCount
return nTime_R
end
end
end
--******************************************************
--天日期(GetDayTime())转换
--******************************************************
function LuaFnDayTime2DateTime(sceneId,selfId,nDayTime)
--参考:GetDayTime()产生的数值nDayTime为:19168 代表19年第168天
local nDay = mod(nDayTime,1000)--总天数
local nMonth = {31,28,31,30,31,30,31,31,30,31,30,31}-- 12个月份的天数
if mod(floor(nDayTime/1000),4) == 0 then --闰年:2月份29天
nMonth[2] = 29
end
local nTempDay = nDay --临时总天数
local nMonthTime = 0
for i = 1,12 do
nTempDay = nTempDay - nMonth[i] --临时总天数 减去 1-12个月
if nTempDay < 0 then --临时总天数少于0时
nMonthTime = i --月份
break
end
end
local nTempDay_add = 0
for i = 1,nMonthTime - 1 do
nTempDay_add = nTempDay_add + nMonth[i]
end
nDay = nDay - nTempDay_add + 1
local nEcho = "20"..floor(nDayTime/1000)
if nMonthTime < 10 then
nMonthTime = "0"..nMonthTime
end
nEcho = nEcho..nMonthTime
if nDay < 10 then
nDay = "0"..nDay
end
--雪舞 修正跨年月(12月份)游龙卡失效的问题 2021-12-6 23:27:55
if GetTodayMonth() == 11 then --11:为12月
nEcho = nEcho + 100
end
nEcho = nEcho..nDay
return tonumber(nEcho)
end
|