方法1.运用标准库提供的ctime头文件中的struct tm结构
本方法比较好记,思路如下:
1. 获得以tm结构表示的当前日期;
2. 将tm结构体中的年月日换成待转换的年月日;
3. 调用mktime函数将新的tm结构转化为time_t形式的时间表示;
在第3步的过程中tm结构中的tm_wday就会更新为对应待转换年月日的周历了。
#include <iostream>
#include <ctime>
using namespace std;
int main ()
{
int year,month,day;
while(cin>>year>>month>>day)
{
time_t mytime = time(0);
tm* mytm = localtime(&mytime);
mytm->tm_mday=day;
mytm->tm_mon=month-1;
mytm->tm_year=year-1900;
time_t newtime = mktime(mytm);
cout<<year<<"-"<<month<<"-"<<day<<" --> 周"
<<(mytm->tm_wday==0?7:mytm->tm_wday)<<endl;
}
return 0;
}</

本文介绍了两种计算给定日期周历的方法:1)利用ctime头文件中的struct tm结构,通过mktime函数更新tm_wday;2)使用蔡勒公式进行计算。对于1582年10月4日前的日期,需采用特定公式。
&spm=1001.2101.3001.5002&articleId=6948865&d=1&t=3&u=63e41265836a45e3bfda0e59110d94ce)
4039

被折叠的 条评论
为什么被折叠?



