这tm_year 场相对于1900年 全部 符合POSIX的平台,而不仅仅是MacOS。 这struct tm 专为解析,显示和操纵人类可读日期而设计。创建时,日期通常是编写的,甚至在没有本年度“ 19”部分的情况下存储,而Y2K的问题约为25年。因此, tm_year 直接可打印为两个数字,通过使其相对于1900年,当时显然显然是合理的。 UNIX时...
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-31*/ int tm_mon; /*月, 从一月算起,0-11*/ 1+p->tm_mon; int tm_year; /*年, 从1900至今已经多少年*/ 1900+ p->tm_year; int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6*/ int tm_yday; /*从今年1月1日到目前的天数,范围0-365*/ int tm_isdst; /*日光节约时间...
0-59*/inttm_hour;/*小时, 0-23*/inttm_mday;/*日,即一个月中的第几天,1-31*/inttm_mon;/*月, 从一月算起,0-11 1+p->tm_mon; */inttm_year;/*年, 从1900至今已经多少年 1900+ p->tm_year; */inttm_wday;/*星期,一周中的第几天, 从星期日算起,0-6*/inttm_yday;/*从今年1...
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_year; /* 年份,其值等于实际年份减去1900 */ int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */ ...
这个年份是以1900年为基准年进行计算的,要是你写的是t.tm_year = 1000的话,那么就是1900年以后的1000年,也就是2900年,它不是绝对日期,而是相对日期。
int tm_year; /* years since 1900 * 当前年减去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 */ }; #include <cstdio> ...
这句计算year的实际值,存放在tm_year中的数据并非直接是记年。说明info中的tm_year的记年是从1900年开始的,如果info->tm_year=0,则代表1900年。