-- local getTime = os.date(“%c”);

-- %a abbreviated weekday name (e.g., Wed)
-- %A full weekday name (e.g., Wednesday)
-- %b abbreviated month name (e.g., Sep)
-- %B full month name (e.g., September)
-- %c date and time (e.g., 09/16/98 23:48:10)
-- %d day of the month (16) [01-31]
-- %H hour, using a 24-hour clock (23) [00-23]
-- %I hour, using a 12-hour clock (11) [01-12]
-- %M minute (48) [00-59]
-- %m month (09) [01-12]
-- %p either “am” or “pm” (pm)
-- %S second (10) [00-61]
-- %w weekday (3) [0-6 = Sunday-Saturday]
-- %x date (e.g., 09/16/98)
-- %X time (e.g., 23:48:10)
-- %Y full year (1998)
-- %y two-digit year (98) [00-99]
-- %% the character ‘%’

-- 如获取当前年月日时分秒:local date=os.date(“%Y-%m-%d %H:%M:%S”);
--
-- local date = os.date("%Y-%m-%d %H:%M:%S")

------------------------------计算时间差-----------------------------
local currentTime = os.date(os.time())
local CoolingTime = currentTime - 100

local s = os.difftime(currentTime, CoolingTime)
local str = string.format("%2d:%2d:%2d", s/(60*60), s/60%60, s%60)
print(str)

local s = os.difftime(currentTime, CoolingTime)
local str = os.date("%X", s)
print(str)

----------------------------获取指定时间值-----------------------------
-- 通过一个table参数, 指定一个时间,返回时间的数值格式
time = os.time(tab)

local tab = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
time = os.time(tab)

-- 获取当前时间的table格式
tab = os.date("*t")

--year表示年,month表示月,day表示日期,hour表示小时,min表示分钟,sec表示秒,isdst表示是否夏令时
--tab成包括一些其他的成员 tab.yday 表示一年中的第几天 tab.wday 表示星期几(星期天为1)
---------------------------------------------------------------------

local GameLogic = commonlib.gettable("Pisces.GameLogic")

local TimeTool = {}
commonlib.TimeTool = TimeTool local HOUR_OF_DAY =
local SECOND_OF_MINUTE =
local SECOND_OF_HOUR =
local SECOND_OF_DAY = HOUR_OF_DAY * SECOND_OF_HOUR function TimeTool:GetServerUnixTime( )
return GameLogic:GetServerUnixTime()
end function TimeTool:GetMillSecond( )
return cc.Director:getMillSecond()
end --往前追朔到某一天的零点, 单位秒数
function TimeTool:GetDayBegin(time)
time = time or self:GetServerUnixTime() local timetable = os.date("*t", time)
timetable.hour=
timetable.min =
timetable.sec = return os.time(timetable)
end --当前是一天的第几秒
function TimeTool:GetSecondsOfDay( )
local now = self:GetServerUnixTime()
local zero = self:GetDayBegin(now)
return now - zero
end --将秒数转换为:::
function TimeTool:TimeToString(time, flag)
time = time or self:GetServerUnixTime()
local sec = time % SECOND_OF_MINUTE
local min = math.floor(time / ) %
local hour = math.floor(time / SECOND_OF_HOUR)
if flag == then
return string.format("%02d:%02d:%02d", hour, min, sec)
elseif flag == then
return string.format("%02d:%02d", min, sec)
end
end --获取间隔的天数
function TimeTool:GetIntervalDay(timeBegin, tiemEnd)
local dayBegTime1 = self:GetDayBegin(timeBegin)
local dayBegTime2 = self:GetDayBegin(tiemEnd)
return math.floor((math.abs(dayBegTime2 - dayBegTime1)) / SECOND_OF_DAY)
end -- 检查两个时间是否为同一天
function TimeTool:CheckTheSameDay(time1, time2)
return self:GetIntervalDay(time1, time2) ==
end --得到自定义“天”的初始时间点, dayHour, dayMin, daySec为自定义天的跨越点
function TimeTool:GetUserDayBegTime(time, dayHour, dayMin, daySec)
time = time or self:GetServerUnixTime()
dayHour = dayHour or
dayMin = dayMin or
daySec = daySec or local tbTime
local curHour = tonumber(os.date("%H", time))
if curHour < dayHour then
local nTime = time - **
tbTime = os.date("*t", nTime)
else
tbTime = os.date("*t", time)
end tbTime.hour = dayHour
tbTime.min= dayMin
tbTime.sec = daySec return os.time(tbTime)
end --判断两个时间是否在同一“天”
function TimeTool:DiffUserDay(time1, time2, dayHour, dayMin, daySec)
dayHour = dayHour or
dayMin = dayMin or
daySec = daySec or local DayBegTime1 = self:GetUserDayBegTime(time1, dayHour, dayMin, daySec)
local DayBegTime2 = self:GetUserDayBegTime(time2, dayHour, dayMin, daySec)
return DayBegTime1 == DayBegTime2
end

Lua Time的更多相关文章

  1. lua执行字节码的过程介绍

    前面一篇文章中介绍了lua给下面代码生成最终的字节码的整个过程,这次我们来看看lua vm执行这些字节码的过程. foo = "bar" local a, b = "a& ...

  2. lua 学习笔记(1)

    一.lua函数赋值与函数调用         在lua中函数名也是作为一种变量出现的,即函数和所有其他值一样都是匿名的,当要使用某个函数时,需要将该函数赋值给一个变量,这样在函数块的其他地方就可以通过 ...

  3. 在redis中使用lua脚本让你的灵活性提高5个逼格

    在redis的官网上洋洋洒洒的大概提供了200多个命令,貌似看起来很多,但是这些都是别人预先给你定义好的,但你却不能按照自己的意图进行定制, 所以是不是感觉自己还是有一种被束缚的感觉,有这个感觉就对了 ...

  4. 使用Nginx+Lua代理Hadoop HA

    一.Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNo ...

  5. 打印Lua的Table对象

    小伙伴们再也不用为打印lua的Table对象而苦恼了, 本人曾也苦恼过,哈哈 不过今天刚完成了这个东西, 以前在网上搜过打印table的脚本,但是都感觉很不理想,于是,自己造轮子了~ 打印的效果,自己 ...

  6. lua解析赋值类型代码的过程

    我们来看看lua vm在解析下面源码并生成bytecode时的整个过程: foo = "bar" local a, b = "a", "b" ...

  7. 怎么调试lua性能

    怎么调试lua性能 我们的游戏使用的是Cocos2dx-lua 3.9的项目,最近发现我们的游戏.运行比较缓慢.想做一次性能优化了.其实主要分为GPU.CPU的分别优化.GPU部分的优化.网上有很多优 ...

  8. Lua 安全调用 metatable 的简单应用

    事情的经过 我们的项目中存在好几个战斗界面,不过界面中的内容略有不同.跟同事出去吃饭的时候,他问我.我们现在的战斗界面.有很多是重复的,但是也有偶尔几个地方不太一样.我在战斗过程中驱动这些界面的时候. ...

  9. 让Lua自己把文件夹下面的所有文件自动加载起来吧

    没有想到我也做了一回标题党.其实这里边说的自动还是有夸大其词的部分.其实只是指定文件夹,然后根据指定文件夹数据,加载目录下边的内容而已. 怎么来进行Lua文件的加载 一般情况下,相关的功能需要给他创建 ...

  10. 让Lua支持Linq吧

    第一次接触Linq是在使用C#的时候,这种语法,在处理列表数据非常方便.如果想了解Linq的更多内容可以百度一下Linq,不过你不了解也没关系,让我在Lua中给你展示一下Linq的魅力.简单点说,Li ...

随机推荐

  1. swift-新手必看的基础部分

    Swift 是一门开发 iOS, OS X 和 watchOS 应用的新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. 常量和变量 ...

  2. Vector 和 Array 区别

    1:array 定义的时候必须定义数组的元素个数;而vector 不需要:且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象, 非const变量以及需要到运行阶段才知道其值的 ...

  3. JAVA中对事物的理解

    1.事物是一组操作数据的集合动作 (场景:再开发的时候相信大家都遇到主表和子表的插入问题,当主表插入成功时,子表没有插入成功,这时候我们就要把主表的数据回滚,这个时候我们就要用到事物了) 2.一组处理 ...

  4. The meaning of the number displayed on the man page in Linux

    0 Header files 0p Header files (POSIX) 1 Executable programs or shell commands 1p Executable program ...

  5. 使用命令行打开vscode

    今天看到一个博客,直接使用code . 就可以打开vscode

  6. 树屋阶梯(codevs 1741)

    题目描述 Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在 ...

  7. py文件控制台执行时,报错:引入的模块不存在

    1.描述:该模块在IDE中是可以正确执行的.但是从cmd控制台执行时,报错:该模块引入的其他模块不存在. 2.解决:在该模块的#encoding:utf-8 之后另起一行加如下代码: #encodin ...

  8. 利用C语言中的函数指针实现c++中的虚函数

    C语言中的函数指针 #include<stdio.h> int fun1(int a) { return a*a; } int fun2(int a) { return a*a*a; } ...

  9. Spring MVC-表单(Form)标签-文件上传(File Upload)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_upload.htm 说明:示例基于Spring MVC 4.1.6. 以下示例显 ...

  10. MVC.Net:压缩/保存图片缩略图

    通常用户上传的图片需要压缩或者生成缩略图.用System.Web.Helpers.WebImage的Resize方法可以很方便的实现这一功能.示例代码如下: /// <summary> / ...