Дата после количества дней в сценариях Lua

Я новичок в сценарии Луа. У меня есть startDate ("03-05-2014" как "dd-mm-yyyy") и промежуток в днях (2) Может кто-нибудь помочь мне, как получить endDate на основе startDate а также span?.

Example startDate     span            endDate 
        ---------     ----            -------
        03-05-2014     2             05-05-2014
       (dd-mm-yyyy)                 (dd-mm-2014)

3 ответа

Решение

Это может помочь вам

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

Вам не нужно делать математику здесь. os.time а также os.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))

Я не собираюсь писать всю программу для вас, но вот что вы можете начать с:

  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 форматировать строку из отметки времени.
Другие вопросы по тегам