C语言判断两个日期大小

Python014

C语言判断两个日期大小,第1张

c语言时间函数

1、获得日历时间函数

可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer)

如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:

2、获得日期和时间函数:

这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?

其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:

struct tm * gmtime(const time_t *timer)

struct tm * localtime(const time_t * timer)

其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。

#include <time.h>

#include <stdio.h>

void main(void)

{

time_t timep

struct tm *p

int in_time[3]

int now_time[3]

int i

printf("输入年-月-日: ")

scanf("%d-%d-%d", &in_time[0], &in_time[1], &in_time[2])

time (&timep)

p=gmtime(&timep)

now_time[0]=1900+p->tm_year

now_time[1]=1+p->tm_mon

now_time[2]=p->tm_mday

for(i=0i<3i++)

if(in_time[i]>now_time[i]) 

{

printf("你输入的日期大\n")

break

}

else if(in_time[i]<now_time[i]) 

{

printf("你输入的日期小\n")

break

}

else 

continue

if(i==3)

printf("两个日期一样大\n")

// printf("%d\n",p->tm_sec) /*获取当前秒*/

// printf("%d\n",p->tm_min) /*获取当前分*/

// printf("%d\n",8+p->tm_hour)/*获取当前时,这里获取西方的时间,刚好相差八个小时*/

// printf("%d\n",p->tm_mday)/*获取当前月份日数,范围是1-31*/

// printf("%d\n",1+p->tm_mon)/*获取当前月份,范围是0-11,所以要加1*/

// printf("%d\n",1900+p->tm_year)/*获取当前年份,从1900开始,所以要加1900*/

// printf("%d\n",p->tm_yday) /*从今年1月1日算起至今的天数,范围为0-365*/

}