Я пишу сценарий на Lua, который среди многих других функций будет выполнять один цикл в определенное время в определенный день. Цикл запускается, когда кнопка нажата, размышляя над этим некоторое время, я понял, что мне нужно будет проверить системное время в миллисекундах, используя os.time, которое в табличной форме также может возвращать дату, что очень полезно. Единственное, в чем я застрял, - это как это выразить, и можно ли было бы включить несколько определений os.time; поэтому в день (x) будет выполняться цикл loop1, а в день (y) будет выполняться цикл 2 и так далее. Я, скорее всего, слишком усложняю это ...
Вот мой код: (он вылетает и горит при вызове нажатием кнопки)
function runiftime()
day1 = a;
day2 = b;
day3 = c;
day4 = d;
status = 0; -- Default status == 0
target = day4;
-- Where a, b, c & d are shown above I would like different os.time outputs which relate to days in the future an example output of os.time is => = os.time() outputs '1384988715'.
repeat
if os.time() == "day1" then
os.execute("Some command");
result = Shell.Execute("Some program", "open", "", "", SW_SHOWNORMAL, false);
status = 1;
end
if os.time() == "day2" then
os.execute("Some command");
result = Shell.Execute("Some program", "open", "", "", SW_SHOWNORMAL, false);
status = 1;
end
if os.time == "day3" then
os.execute("Some command");
result = Shell.Execute("Some program", "open", "", "", SW_SHOWNORMAL, false);
status = 1;
end
if os.time == "day4" then
os.execute("Some command");
result = Shell.Execute("Some program", "open", "", "", SW_SHOWNORMAL, false);
status = 1;
end
if status == 1 then
Input.SetText("feed", "Routine Successful! Waiting for Command...");
else
Input.SetText("feed", "Automated Routine Started! Waiting for OS Clock...");
end
until (os.time == target);
end
os.time()
возвращает число, скорее всего, время unix с эпохи. Сравнивать это со строкойday1
не получается.os.date()
может вернуть что-то более подходящее для ваших целей. - person greatwolf   schedule 21.11.2013