上部分 获取日期数据
第一种 包含头文件 windows.h
涉及结构体
typedef struct _SYSTEMTIME {
WORD wYear;//年
WORD wMonth;//月
WORD wDayOfWeek;//星期 取值范围0-6 0代表星期日
WORD wDay;//日
WORD wHour;//时
WORD wMinute;//分
WORD wSecond;//秒
WORD wMilliseconds;//毫秒
} SYSTEMTIME;
代码示例
#include "stdafx.h"
#include
#include
using namespace std;
int main()
{
SYSTEMTIME timenow;
GetLocalTime(&timenow);
printf("%04d年 %02d月 %02d日 %02d时 %02d分 %02d秒 今天是星期%d",daystudy,timenow.wMonth, timenow.wDay,timenow.wHour,timenow.wMinute,timenow.wSecond,timenow.wDayOfWeek);
return 0;
}
第二种
time_t,time():C标准库(精确到秒)
包含头文件 time.h
涉及结构体
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()为负。*/
};
代码示例
#include "stdafx.h"
#include
int main()
{
struct tm * tm;//赋值结构体名称 tm
time_t t;//得到从1970年1月1日到目前的秒数 t
t = time(NULL);
tm=localtime(&t);
printf("现在系统时间为 %d年 %d月 %d日 %d时 %d分 %d秒\n今天是 %d年 第%d天 星期%d",tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,tm->tm_year+1900,tm->tm_yday,tm->tm_wday);
system("pause");
return 0;
}
第三种
涉及头文件 time.h
涉及结构体
time_t
涉及函数
time()
示例
time_t time(time_t *timer);//得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数
double difftime(time_t timer1,time_t timer0);//计算时间差
格式化的字符串
%a 星期几的缩写。Eg:Tue
%A 星期几的全名。 Eg: Tuesday
%b 月份名称的缩写。
%B 月份名称的全名。
%c 本地端日期时间较佳表示字符串。
%d 用数字表示本月的第几天 (范围为 00 至 31)。日期
%H 用 24 小时制数字表示小时数 (范围为 00 至 23)。
%I 用 12 小时制数字表示小时数 (范围为 01 至 12)。
%j 以数字表示当年度的第几天 (范围为 001 至 366)。
%m 月份的数字 (范围由 1 至 12)。
%M 分钟。
%p 以 ''AM'' 或 ''PM'' 表示本地端时间。
%S 秒数。
%U 数字表示为本年度的第几周,第一个星期由第一个周日开始。
%W 数字表示为本年度的第几周,第一个星期由第一个周一开始。
%w 用数字表示本周的第几天 ( 0 为周日)。
%x 不含时间的日期表示法。
%X 不含日期的时间表示法。 Eg: 15:26:30
%y 二位数字表示年份 (范围由 00 至 99)。
%Y 完整的年份数字表示,即四位数。 Eg:2008
%Z(%z) 时区或名称缩写。Eg:中国标准时间
%% % 字符
下部分 计算时间差值
第一种
计算月日时分秒格式两个时间的差值
使用CTimeSpan类,具体使用方法如下:
CTime t1( 1999, 3, 19, 22, 15, 0 );
CTime t = CTime::GetCurrentTime();
CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔
int iDay=span.GetDays(); //获取这段时间间隔共有多少天
int iHour=span.GetTotalHours(); //获取总共有多少小时
int iMin=span.GetTotalMinutes();//获取总共有多少分钟
int iSec=span.GetTotalSeconds();//获取总共有多少秒
第二种
time_t,time():C标准库(精确到秒)
time_t time(time_t *timer);//得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数
double difftime(time_t timer1,time_t timer0);//计算时间差
参考文章
https://blog.csdn.net/wuxiaoyao12/article/details/40372815#
https://blog.csdn.net/bao_bei/article/details/50617505