早上好朋友...我正在为移动应用程序使用 Lua 脚本语言,并且有以下要求 -
该应用程序的主要目的是为个人安排与医生的约会。因此,一旦安排了用户的约会,例如 5 月 8 日下午 4:30,用户应该在一个小时前(即下午 3:30)收到“提醒提醒”。
我对如何完成这件事完全一头雾水。我可以获取用户的日期时间值并使用函数应在该日期时间的 60 分钟之前调用的逻辑。该功能包含我的“警报消息”。但是如何做到这一点?
任何人都可以指导我吗?
如果需要任何其他输入,请告诉我...
提前致谢。
早上好朋友...我正在为移动应用程序使用 Lua 脚本语言,并且有以下要求 -
该应用程序的主要目的是为个人安排与医生的约会。因此,一旦安排了用户的约会,例如 5 月 8 日下午 4:30,用户应该在一个小时前(即下午 3:30)收到“提醒提醒”。
我对如何完成这件事完全一头雾水。我可以获取用户的日期时间值并使用函数应在该日期时间的 60 分钟之前调用的逻辑。该功能包含我的“警报消息”。但是如何做到这一点?
任何人都可以指导我吗?
如果需要任何其他输入,请告诉我...
提前致谢。
我会采取这样的方法:
1.
将每个约会的详细信息存储为包含 JSON 或 Lua 表格数据的 .txt 文件,如下所示:
{
date = "14:30 01/07/2013";
dateBooked = "09:30 23/06/2013";
venue = "31 Dentist Street";
appointmentType = "Routine Teeth Cleaning";
}
2.
你可以有一个像这样的计时器类
Timer = {}
Timer_mt = { __index = Timer; __add = function(a,b) a:tickBy(b) end ; }
function Timer:new(delayTime,callBack)
local timer = {callBack=callBack}
timer.initTime = os.date() --MM/DD/YY HH:MM:SS
--delayTime = HH:MM:SS
_,_,hour,minute,second = string.find(delayTime,"(%d%d):(%d%d):(%d%d)")
timer.delay = {hour=hour,minute=minute,second=second}
--time the timer started
_,_,hour,minute,second = string.find(timer.initTime,"(%d%d):(%d%d):(%d%d)")
timer.startTime = {hour=hour,minute=minute,second=second}
--time the timer started
timer.initTime = os.date() --MM/DD/YY HH:MM:SS
print(timer.initTime)
_,_,hour,minute,second = string.find(timer.initTime,"(%d%d):(%d%d):(%d%d)")
timer.currentTime = {hour=hour,minute=minute,second=second}
return setmetatable(timer,Timer_mt)
end
function Timer:tick() --returns true if time expired
currTime = os.date() --MM/DD/YY HH:MM:SS
_,_,chour,cminute,csecond = string.find(currTime,"(%d%d):(%d%d):(%d%d)")
if chour - self.startTime.hour >= tonumber(self.delay.hour) and cminute - self.startTime.minute >= tonumber(self.delay.minute) and csecond - self.startTime.second > tonumber(self.delay.second) then
self:callBack()
self.startTime.hour,self.startTime.minute, self.startTime.second = chour,cminute,csecond
--return true
end
--return false
end
t = Timer:new("00:00:02",function () print("DONE") end)
print(t.currentTime.hour,t.currentTime.minute,t.currentTime.second)
while t:tick() or true do
io.read()
end
(我只是编造了这个,所以我建议您对其进行测试,但它似乎对我有用)。
3.
在启动时,或添加新约会时创建一个新计时器,然后tick()
在主执行期间的某个时间点创建一个新计时器,您甚至可以拥有一个计时器,它是您唯一的计时器,tick()
它回调ticks()
其他计时器.. . 无论如何为每个计时器设置回调以显示警报