Дата после количества дней в сценариях 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))
Я не собираюсь писать всю программу для вас, но вот что вы можете начать с:
Получите день, месяц и год из строки:
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)
- использование
os.time
чтобы получить метку времени начала. Вы можете добавить3600 * 24 * 2
секунд (2 дня), чтобы получить метку времени окончания. - использование
os.date
форматировать строку из отметки времени.