在Lua中使用定时脚本/函数
2013-5-8 6:8:21
收藏:0
阅读:151
评论:1
大家早上好... 我正在为移动应用程序使用 Lua 脚本语言进行开发,并有以下要求 -
应用程序的主要目的是为个人预约医生。 因此,一旦用户的预约安排好了,例如 5 月 8 日下午 4:30,用户应在 1 小时前即下午 3:30 收到“提醒警报”。
我完全无法想出如何完成这项任务。 我可以获取用户的日期时间值,然后使用在该日期时间之前 60 分钟调用的 函数 的逻辑。该函数包含我的“警报消息”。 但要如何完成呢?
有人可以给我一些提示吗?
如果需要任何其他输入,请告诉我...
先行致谢。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
我会采取这样的方法:
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()它,它的回调函数会tick()其他计时器... 无论如何,将每个计时器的回调设置为显示警报。