在Lua脚本中,计算特定天数后的日期。

我是 Lua 脚本的新手。我有一个 startdate (格式为 "dd-mm-yyyy" 的 "03-05-2014") 和一个以天为单位的跨度 (2)。有人可以帮我根据 startdate 和 span 获取 endDate 吗?

例子  startDate     span            endDate
        ---------     ----            -------
        03-05-2014     2             05-05-2014
       (dd-mm-yyyy)                 (dd-mm-yyyy)
点赞
用户1009479
用户1009479

我不会为你编写整个程序,但是这里是一些你可以开始使用的东西:

  1. 从字符串中获取日期、月份和年份:

    local day, month, year = string.match('03-05-2014', '(%d%d)-(%d%d)-(%d%d%d%d)')
    day, month, year = tonumber(day), tonumber(month), tonumber(year)
    
  2. 使用 os.time 获取一个起始时间的时间戳。接着,你可以添加 3600 * 24 * 2 秒(即 2 天)来获取结束时间的时间戳。

  3. 使用 os.date 将时间戳格式化为字符串。

2014-05-06 05:23:50
用户886953
用户886953

这可能会对你有所帮助

local dayValue, monthValue, yearValue = string.match('31-05-2014', '(%d%d)-(%d%d)-(%d%d%d%d)')
dayValue, monthValue, yearValue = tonumber(dayValue), tonumber(monthValue), tonumber(yearValue)
now = os.time{year = yearValue, month = monthValue, day = dayValue}
numberOfDays = now + 2 * 24 * 3600
print(os.date("%c",numberOfDays))
dateAfterNumberOfDays = os.date("%a %d %B %Y, %H%p%M",numberOfDays)
print ("\nafter number of days "..dateAfterNumberOfDays) -- give you date after number of days

通过该代码,可以帮助你计算指定日期之后的日期。代码首先通过字符串匹配函数string.match()解析日期参数,然后将其转换为dayValuemonthValueyearValue变量。接下来,利用时间函数os.time()将这些值转换为时间戳格式化,并将得到的结果加上特定的天数。最后,使用os.date()函数将时间戳格式化为日期字符串。

2014-05-06 06:17:42
用户258523
用户258523

你不需要在这里进行任何计算。os.timeos.date会为你完成。

local day, month, year = ("03-05-2014"):match("(%d%d)-(%d%d)-(%d%d%d%d)")
local span = 64
local endtime = os.time({day = day + span, month = month, year = year})
print(os.date("%c", endtime))
2014-05-06 13:50:33