lua计算两个时间之内,总共有多少天

-- 日期转时间:参数,{year, month, day, hour, min|minute, sec|second}

function dateToTime(osDate)

local hour = osDate.hour or 0

local minute = osDate.min or osDate.minute or 0

local second = osDate.sec or osDate.second or 0

return os.time{year=osDate.year, month=osDate.month, day=osDate.day, hour=hour, min=minute, sec=second}

end

-- 获取某年某月的天数

function getMonthDays(year, month)

local time1 = self:dateToTime({year=year, month=month, day=1})

local nextYear, nextMonth = year, month + 1

if nextMonth > 12 then

nextYear = year + 1

nextMonth = 1

end

local time2 = self:dateToTime({year=nextYear, month=nextMonth, day=1})

return math.floor((time2 - time1)/(24*3600))

end

-- 获取两个时间之内,相差多少天

function getDaysBetweenDate(nowTb, endTb)

--先比较年

if endTb.year > nowTb.year then

for i = nowTb.year,endTb.year,1 do

if i == nowTb.year then

for month = nowTb.month,12,1 do

local monthDays = getMonthDays(nowTb.year, month)

if month == nowTb.month then

leftDays = monthDays - nowTb.day

else

leftDays = leftDays  + monthDays

end

end

elseif i == endTb.year then

for month = 1,endTb.month,1 do

local monthDays = getMonthDays(i, month)

if month == endTb.month then

leftDays = leftDays + endTb.day

else

leftDays = leftDays  + monthDays

end

end

else

for month =1,12,1 do

local monthDays = getMonthDays(i, month)

leftDays = leftDays  + monthDays

end

end

end

else --比较月

if endTb.month > nowTb.month then

for i = nowTb.month,endTb.month,1 do

local monthDays = getMonthDays(endTb.year, i)

if i == nowTb.month then

leftDays = monthDays - nowTb.day

elseif i == endTb.month then

leftDays = leftDays + endTb.day

else

leftDays = leftDays  + monthDays

end

end

else --比较日

leftDays = endTb.day - nowTb.day

end

end

end

时间: 01-16

lua计算两个时间之内,总共有多少天的相关文章

js实现的计算两个时间之间的时间差

js实现的计算两个时间之间的时间差:在实际应用中,需要计算两个时间点之间的差距,一般来说都是计算当前时间和一个指定时间点之间的差距,并且有时候需要精确到天.小时.分钟和秒,下面就简单介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

C/C++中计算两个时间相差的天数

在系统中经常用到time()函数获取系统时间,也就是通常所说的日历时间,这个时间是从1970年1月1日0时开始到现在的秒数. 问:已有日历时间t1和t2(假设t1>t2),如何计算他们之间相差的天数. 答: day = (t1+time_zone*60*60)/time_of_day - (t2+time_zone*60*60)/time_of_day 其中time_zone表示时区间隔,比如说北京时间相比于标准时间就需要加8小时,可以参考下图.time_of_day为一天的秒数,等于24*60

php 计算两个时间的差

<?php $now = time(); $old = strtotime("2014-6-25 10:10:10"); $day = floor(($now-$old)/(60*60*24)); $hour = floor(($now-$old)/(60*24)); $minute = floor(($now-$old)/(60)); $second = $now-$old; echo $minute; ?> 要计算两个时间的差需要把两个时间都转换(strtotime)为

js 计算两个时间的差

比如得到两个时间的字符串 2013-01-21 11:10:49   2013-01-21 11:14:43,要用后面的时间减去前面的时间 直接上代码 var begen = new Date(value[0]["createtime"]) var end = new Date(value[i]["createtime"]) var cha = end.getTime()-begen.getTime(); console.log(cha); console.log(

oracle计算两个时间的差值(XX天XX时XX分XX秒)

在工作中需要计算两个时间的差值,结束时间 - 开始时间,又不想在js里写function,也不想在java里去计算,干脆就在数据库做了一个函数来计算两个时间的差值.格式为XX天XX时XX分XX秒: 上代码: CREATE OR REPLACE FUNCTION F_GET_DIFF_TIME(START_TIME IN DATE, END_TIME IN DATE) RETURN VARCHAR2 IS DIFF_TIME VARCHAR2(50); BEGIN SELECT TDAY || '

MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() 实现. 函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为: TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之

Java计算两个时间的天数差与月数差 LocalDateTime

/**  * 计算两个时间点的天数差  * @param dt1 第一个时间点  * @param dt2 第二个时间点  * @return int,即要计算的天数差  */ public static int dateDiff(LocalDateTime dt1,LocalDateTime dt2){  //获取第一个时间点的时间戳对应的秒数  long t1 = dt1.toEpochSecond(ZoneOffset.ofHours(0));  //获取第一个时间点在是1970年1月1日

计算两个时间相差多少年月日的sql算法

1 /****** Object: StoredProcedure [dbo].[GetDateDiff] Script Date: 11/12/2019 16:14:05 ******/ 2 SET ANSI_NULLS ON 3 GO 4 SET QUOTED_IDENTIFIER ON 5 GO 6 --计算两个时间相差多少年月日的sql算法,用于新生儿年龄计算 7 ALTER PROCEDURE [dbo].[GetDateDiff] 8 @fromDate NVARCHAR(10) ,