C/C++完成两个日期之间相隔天数的计算
2016-08-27 17:53
549 查看
//占坑
http://jingyan.baidu.com/article/86fae346cea31b3c49121a3b.html
convert函数中的定义改为:struct tm info={0};
//填坑
struct tm * localtime(const time_t * timep); 获取为当前时区时间。
struct tm * gmtime(const time_t * timep); 获取为0时区时间。
time_t time(time_t *t); 如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。
time_t mktime(strcut tm * timeptr);将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
这是两个挺重要的日子对我来说。
//struct tm定义
//另一种方法
/* 求任意两个日期之间相差的天数 */
http://blog.csdn.net/u011609652/article/details/17012263
http://jingyan.baidu.com/article/86fae346cea31b3c49121a3b.html
convert函数中的定义改为:struct tm info={0};
//填坑
struct tm * localtime(const time_t * timep); 获取为当前时区时间。
struct tm * gmtime(const time_t * timep); 获取为0时区时间。
time_t time(time_t *t); 如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。
time_t mktime(strcut tm * timeptr);将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include<time.h> int get_days(time_t from, time_t to); time_t convert(int year,int month,int day); int main() { time_t from,to; struct tm * t; int days; to=time(NULL); t=localtime(&to); days=get_days(from,to); printf("現在是%d年%d月%d日%d时%d分%d秒\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); from=convert(2011,5,15); days=get_days(from,to); printf("距离2011年5月15日%d天\n",days); from=convert(2013,1,2); days=get_days(from,to); printf("距离2013年1月2日%d天\n",days); system("pause"); return 0; } time_t convert(int year,int month,int day) { struct tm info={0}; info.tm_year=year-1900; info.tm_mon=month-1; info.tm_mday=day; return mktime(&info); } int get_days(time_t from, time_t to) { int fromSecond=(int)from; int toSecond=(int)to; return (toSecond-fromSecond)/24/3600; }
这是两个挺重要的日子对我来说。
//struct tm定义
#ifndef _TM_DEFINED struct tm { int tm_sec; /* 秒 – 取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值区间为[0,23] */ int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */ int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */ int tm_year; /* 年份,其值等于实际年份减去1900 */ int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */ int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
//另一种方法
/* 求任意两个日期之间相差的天数 */
http://blog.csdn.net/u011609652/article/details/17012263
相关文章推荐
- Android 计算两个日期之间相隔的天数
- java计算两个日期之间相隔的天数
- c#(asp.net) 如何计算两个日期之间相隔天数
- 如何计算两个日期之间相隔的天数?calendar的用法
- calendar 计算两个日期之间相隔的天数
- C++ 计算任意两个日期之间的天数
- java计算两个日期之间相差天数和相隔天数详解
- 计算出任意两个日期之间相隔的天数
- 怎样计算两个日期之间相隔的天数,如2005-5-6和2004-6-9
- 计算两个日期之间相隔天数
- 计算两个日期之间相隔的天数
- 计算任意两个日期之间相隔的天数以及年数
- 用c++实现输入任意两个日期 计算相隔天数
- 计算两个日期之间相隔的天数
- c#(asp.net) 如何计算两个日期之间相隔天数
- fmt标签如何计算两个日期之间相隔的天数
- 计算两个日期之间的天数差C++/java
- 计算两个日期之间的天数(C++)
- JAVA计算两个日期之间相差的天数
- asp.net中计算两个日期之间的相差的天数的方法(vb)