2015-10-06 2 views
1

У меня есть файл (termino.txt), что все заполнено в следующем формате:сравнивающие строки - Lua

  1. оплатить счет
  2. 2015-08-30T13: 22: 53.108Z
  3. Перейти к врачу
  4. 2015-09-30T13: 22: 53.108Z
  5. ....

Все четные строки из формировать временную метку RFC 3339. Мне нужно сравнить сегодняшнюю дату с этими датами в файле, чтобы узнать, совпадают ли они. Я пробовал это:

local function verifica(evt) 
    local nome= '' 
    local dia = '' 
    local turn = 1 
    local data = os.date("%x") 
    local file = io.open("termino.txt", "r") 
    while true do 
     nome = dia 
     line = file:read() 
     dia = line 

     if (turn %2 == 0) then 

      > Here I need to compare "data" with "dia" that will receive string with RFC 3339 timestamp format. 


     end 
    turn ++ 
    end 

end 

Мне нужна помощь, чтобы сделать это сравнение! Благодаря

+1

'локальных данных = os.date ("% F")', сравнить первые 10 символов 'если данные == линия: к югу (1,10) затем' –

+0

Я в бразилии. Поэтому я предполагаю, что когда я запускаю локальные данные = os.date («% F»), формат будет «DD/MM/YYYY», но в файле формат «YYYY-MM-DD»! как мне это исправить? –

+0

Используйте 'os.date '% Y-% m-% d" ' –

ответ

0
local dia = '2015-10-6T13:22:53.108Z' 
-- parse date info from the RFC 3339 timestamp 
local year, month, day = dia:match('(%d+)-(%d+)-(%d+)') 
-- get today's date from Lua, in table format 
local today = os.date('*t') 
-- compare 
if tonumber(year) == today.year 
    and tonumber(month) == today.month 
    and tonumber(day) == today.day then 
    -- the dates match 
end 
+2

Вам также нужны вызовы' tonumber'/'tostring'. – hjpotter92

+0

@Mud - В строке Lua "123" не равно числу 123. –

+0

Doh. Как я долго программировал в Lua и не знал, что я не знаю. Приветствия. – Mud

Смежные вопросы