易语言时间比较大小(先后)

Python010

易语言时间比较大小(先后),第1张

第一种方法:

命令:取时间间隔()

    调用格式: 〈双精度小数型〉 取时间间隔 (日期时间型 时间1,日期时间型 时间2,整数型 取间隔部分) - 系统核心支持库->时间操作

    英文名称:TimeDiff

    返回一个数值,表示“时间1”减去“时间2”之后的间隔数目。注意:每个星期以星期天为第一天。本命令为初级命令。

    参数<1>的名称为“时间1”,类型为“日期时间型(date)”。

    参数<2>的名称为“时间2”,类型为“日期时间型(date)”。

    参数<3>的名称为“取间隔部分”,类型为“整数型(int)”。参数值指定取时间间隔的单位,可以为以下常量: 1、#年份; 2、#季度; 3、#月份; 4、#周; 5、#日; 6、#小时; 7、#分钟; 8、#秒。

第二种方法:

命令:时间_到时间戳()

把2个时间转成时间戳,时间戳就是个长整数的数字,比较他们的大小。

    子程序名:时间_到时间戳

    把指定日期时间转换为10位或13位时间戳,默认生成13位时间戳。13位:1325252169718,10位:1325252169

    返回值类型:文本型

    参数<1>的名称为“参_时间”,类型为“日期时间型”,允许接收空参数数据。注明:可为空,默认为现行时间。

    参数<2>的名称为“参_十位时间戳”,类型为“逻辑型”,允许接收空参数数据。注明:本参数为真时,将生成10位时间戳返回。

    参数<3>的名称为“参_是否取满10位”,类型为“逻辑型”,允许接收空参数数据。注明:如果参数为真,则保证一定取出至少10位,如果不足10位,在前面补0. 如果为假,则直接取出。

我写了个程序 你看一下 不明白的话联系我 有注释

#获取当前的时间

today = Time.new

puts "当前日期:" + today.strftime("%Y-%m-%d %H:%M:%S")#采用格式化输出

#获取指定日期的时间 如 2010-08-30 20:50:01

day = Time.local(2010, 8 , 30 , 20, 50, 1)

puts "指定日期:" + day.strftime("%Y-%m-%d %H:%M:%S")

#获取指定日期的秒数(就是1970年到指定日期的秒数)

sec1 = day.to_i

#同理,获取今天的秒数

sec2 = today.to_i

#秒数求差,同时折合为天数

num = (sec1 - sec2)/(24*60*60)

puts (day.strftime("%Y-%m-%d %H:%M:%S") + "与" + today.strftime("%Y-%m-%d %H:%M:%S") + "相差" + num.to_s + "天")

/*

1) 如果时间字符串格式固定,可以直接按字符串比较大小的方法比较他们所表示对时间大小。这样比较容易。

2) 也可以根据时间字符串,提取年月日时分秒,再比较。这样可以获取时间的具体信息。对时间进行任意的操作而不限于比较。

下面是示例程序,用了上述两种方法:

*/

#include <stdio.h>

#include <string.h>

#include <time.h>

time_t trans(char timeForamt[],char strTime[])

{

/*

struct tm {

int tm_sec// seconds after the minute - [0,59]

int tm_min// minutes after the hour - [0,59]

int tm_hour // hours since midnight - [0,23]

int tm_mday // day of the month - [1,31]

int tm_mon// months since January - [0,11]

int tm_year // years since 1900

int tm_wday //days since Sunday - [0,6]

int tm_yday // days since January 1 - [0,365]

int tm_isdst // daylight savings time flag

}

*/

struct tm t

sscanf(strTime,timeForamt,&t.tm_year,&t.tm_mon,&t.tm_mday,&t.tm_hour,&t.tm_min,&t.tm_sec)

t.tm_year -= 1900

t.tm_mon -= 1

return mktime(&t)

}

int main(int argc, char *argv[])

{

char strT1[]="2011/09/20 08:12:12"

char strT2[]="2011/10/12 12:12:12"

time_t t1,t2

// 由 strT1 转换成时间(距离: 1970 年 1 月 1 日过去的秒数)

t1 = trans("%d/%d/%d %d:%d:%d",strT1)

// 由 strT2 转换成时间(距离: 1970 年 1 月 1 日过去的秒数)

t2 = trans("%d/%d/%d %d:%d:%d",strT2)

/*

比较两个时间大小

*/

// 以字符串形式比较

if(strcmp(strT1,strT2)<0)

{

printf("%s 早于 %s\n",strT1,strT2)

}

else if(strcmp(strT1,strT2)==0)

{

printf("%s 和 %s 同时\n",strT1,strT2)

}

else

{

printf("%s 晚于 %s\n",strT1,strT2)

}

// 用秒数比较

if(difftime(t1,t2)<0)

{

printf("%s 早于 %s\n",strT1,strT2)

}

else if(difftime(t1,t2)==0)

{

printf("%s 和 %s 同时\n",strT1,strT2)

}

else

{

printf("%s 晚于 %s\n",strT1,strT2)

}

return 0

}