-- 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. socket 网络编程笔记 一

    初始socket模块 Serve端代码 import socket sk = socket.socket() #默认为TCP连接 """socket 里面两个方法 fam ...

  2. IDEA git commit push revert

    Revert uncommitted changes You can always undo the changes you've done locally before you have commi ...

  3. 【微软2017年预科生计划在线编程笔试 A】Legendary Items

    [题目链接]:https://hihocoder.com/problemset/problem/1489 [题意] 每轮游戏; 你一开始有p的概率获得超神标记; 如果这轮游戏你没获得超神标记; 那么你 ...

  4. Java8新特性之forEach遍历

    参考文章: https://www.cnblogs.com/billyu/p/6118008.html

  5. 洛谷 P1348 Couple number

    题目描述 任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number.你的工作就是判断一个数N是不是Couple number. 输入输出格式 输入格式 ...

  6. 如何实现在scrapy调试爬虫

    # -*- coding:utf-8 -*- from scrapy.cmdline import execute import sys import os '''在爬虫文件夹下面自定义一个main. ...

  7. NEMA-0183(GPRMC GPGGA)详细解释

    NEMA-0183(GPRMC GPGGA)详细解释 nmea数据如下:  $GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5. ...

  8. [bzoj4385][POI2015]Wilcze doły_单调队列

    Wilcze doły bzoj-4385 POI-2015 题目大意:给定一个n个数的序列,可以将连续的长度不超过d的区间内所有数变成0,求最长的一段区间,使得区间和不超过p. 注释:$1\le n ...

  9. Unity3d-反编译C#和提取资源

    使用MonoDevelop查看代码 1.解压缩一个Ipa文件,找到如下目录 2.拖拽一个Assembly-CSharp.dll文件到MonoDevelop工具栏,即可查看C#代码 其他C#反编译工具: ...

  10. 设计模式-&gt;观察者模式

    观察者模式能很大的降低模块之前的耦合.详细的观察者模式,客官们能够去看<设计模式>或者<Head first设计模式>等之类的书. 在java中,java.util库中封装了观 ...