随手写的,项目中没用,不一定对,只作参考。

--游戏时间相关函数

local gt = {}

local math = math
local ONE_MINUTE =
local ONE_HOUR = ONE_MINUTE * ONE_MINUTE
local ONE_DAY = ONE_HOUR *
local ONE_WEEK = ONE_DAY* --本地时间2000-01-01 00:00对应UTC
local sec_2000 = os.time{year=,month=,day=,hour=,min=,sec=}
local refresh_2000 = sec_2000 + ONE_HOUR*
local monday_2000 = os.time{year=,month=,day=,hour=,min=,sec=} --第一个周一 -- Compute the difference in seconds between local time and UTC.
function gt.get_timezone()
local now = os.time()
return os.difftime(now, os.time(os.date("!*t", now)))
end local TIMEZONE = gt.get_timezone() --这是获取2000-01-01 00:00:00以来所过的天数,根据系统时区变化
function gt.get_day_from_2000()
return math.floor( (ev.time - sec_2000)/ONE_DAY )
end --这是获取2000-01-01 00:00:00以来所过的秒数,根据系统时区变化
function gt.get_second_from_2000()
return ev.time - sec_2000
end --这是获取2000-01-01 04:00:00以来所过的天数,根据系统时区变化
function gt.get_refresh_day_from_2000()
return math.ceil( (ev.time - refresh_2000)/ONE_DAY )
end --这是获取2000-01-01 00:00:00以来所过的周数,根据系统时区变化
function gt.get_week_from_2000()
return math.ceil( (ev.time - monday_2000)/ONE_WEEK )
end --获取当天的0时0分0秒的时间
function gt.get_begin_of_day()
local local_t = ev.time + TIMEZONE
return local_t - local_t%ONE_DAY
end --获取下分钟的时间
function gt.get_next_minite()
return ev.time - ev.time%ONE_MINUTE + ONE_MINUTE
end --获取下小时的时间
function gt.get_next_hour()
return ev.time - ev.time%ONE_HOUR + ONE_HOUR
end --获取下一次的4时0分0秒的时间
function gt.get_next_refresh_time()
local pass = (ev.time - refresh_2000)%ONE_DAY --相对04:00的已过秒数 return ev.time - pass + ONE_DAY
end --获得星期几 1星期一
--TODO 这里星期天是7
function gt.get_weekday()
local sec = (ev.time - monday_2000)%ONE_WEEK
if sec > then
return math.ceil( sec/ONE_DAY)
end return --周日00:00才会这样,算周一
end --获取当天的秒数,范围是(0 <= sec < 24 * 3600)
function gt.get_second_of_day()
return (ev.time + TIMEZONE)%ONE_DAY
end --比较a-b时间是否>=num天
function gt.compare_days(a,b,num)
local ds = math.floor((a - sec_2000)/ONE_DAY) - math.floor((b - sec_2000)/ONE_DAY)
return ds >= num or false
end return gt

lua的几个时间相关处理函数的更多相关文章

  1. Lua 学习笔记(五)函数

    函数的定义:在Lua中,函数是一种对语句和表达式进行抽象的主要机制. 一.函数基本用法        在Lua中,      1.函数既可以完成某项特定的任务.(被视为一条语句)      2.也可以 ...

  2. 【小白学Lua】之Lua变长参数和unpack函数

    一.简介 Lua的变长参数和unpack函数在实际的开发中应用的还挺多的,比如在设计print函数的时候,需要支持对多个变量进行打印输出,这时我们就需要用到Lua中的变长参数和unpack函数了. 二 ...

  3. 《Lua程序设计》第5章 函数 学习笔记

    Lua为面向对象式的调用也提供了一种特殊的语法——冒号操作符.表达式o.foo(o, x)的另一种写法是o:foo(x),冒号操作符是调用o.foo时将o隐含地作为函数的第一个参数.Lua可以调用C语 ...

  4. Lua学习笔记(6): 函数

    Lua的函数 函数用于简化程序,当某些工作需要重复执行的时候就可以使用函数减轻工作量(虽然复制粘贴也行) 语法: function 函数名(参数列表) 函数体 return 返回值 end --结束标 ...

  5. cocos进阶教程(1)Lua调用自定义C++类和函数的最佳实践

    第一层:纯C环境下,把C函数注册进Lua环境 a.lua 文件 )) a.c 文件 #include <lua.h> #include <lualib.h> #include ...

  6. Cocos2d-x下Lua调用自定义C++类和函数的最佳实践[转]

    Cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 ...

  7. 【转】Cocos2d-x下Lua调用自定义C++类和函数的最佳实践

    转自:http://segmentfault.com/blog/hongliang/1190000000631630 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明 ...

  8. [lua] 你所不知道的lua nil值在可变参数函数中怎么处理!

    在lua中, 问题1:如果你在可变参数...中传入若干个参数,其中有的参数要带nil,这时怎么解决呢?(比如local function _test(...) end    _test(1, nil, ...

  9. ulua c#调用lua中模拟的类成员函数

    项目使用ulua,我神烦这个东西.lua单纯在lua环境使用还好,一旦要跟外界交互,各种月经不调就来了.要记住贼多的细节,你才能稍微处理好.一个破栈,pop来push去,位置一会在-1,一会在-3,2 ...

随机推荐

  1. yii [error] [exception.CHttpException.404] exception 'CHttpException' with message 'Unable to resolve the request "favicon.ico".'

    yii使用中,发现runtime文件夹下出现这个错误信息 解决办法:在生成的APP程序根目录下建.htaccess文件(前提是需要开启apache重写,具体如何开,查资料咯) 然后配置如下 <I ...

  2. LSI SAS 3108 配置操作

    配置LSISAS3108 介绍LSISAS3108的配置操作. 5.1 登录CU界面 介绍登录LSISAS3108的CU配置界面的方法,以及CU界面的主要功能. 5.2 创建RAID 介绍在LSISA ...

  3. 内存泄露 Memory Leaks

    什么是内存泄露 内存管理一直是Java 所鼓吹的强大优点.开发者只需要简单地创建对象,而Java的垃圾收集器将会自动管理内存空间的分配和释放. 但在很多情况下,事情并不那么简单,在 Java程序中总是 ...

  4. ASP.NET-FineUI开发实践-6(三)

    自动补全也算是好东西吧,我也不清楚下拉列表可以过滤为啥还有自动补全,其实自动补全用到还是通过jq获取服务端的动态数据补全.我没做动态的例子,其实好写,就不写了. 1.用到了两个js包 <scri ...

  5. HTML标签练习

    <html> <> <body> <h4>一个无序列表:</h4> <ul> <li><a href=&quo ...

  6. 自己动手写easyui的checkbox

    最近项目中用到了easyui这个框架,找了一圈也没有找到checkbox list控件,被迫只能自己实现了,为了便于复用,自己封装了下,有需要的,直接拿去用吧.有意见或建议的,欢迎指教啊. 调用示例 ...

  7. 日期 bootsrtap-datatimepicker and bootstrap-datepicker 控件支持中文

    引用 bootsrtap-datatimepicker and bootstrap-datepicker 控件,发现官方控件不支持中文 1,bootstrap-datepicker - >解决方 ...

  8. 如何在CentOS 7上修改主机名

    如何在CentOS 7上修改主机名 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty).“静态”主机名也称为内核主机名,是系统在启动时 ...

  9. iOS9之后对于NSURL的编码转换方法变化说明

    在iOS9之后,官方推荐使用下面的方法对NSString进行转换 - (nullable NSString *)stringByAddingPercentEncodingWithAllowedChar ...

  10. GitHub——如何更新已经fork的代码

    github上有个很方便的功能叫fork,将别人的工程一键复制到自己账号下.这个功能很方便,但有点不足的是,当源项目更新后,你fork的分支并不会一起更新,需要自己手动去更新.下面记录下网上找到的更新 ...