万年历

mac2022-06-30  28

题目描述

实现思路

利用蔡勒公式计算

代码实现

#include <iostream> #include <cstdlib> #include<cmath> using namespace std; int main() { string input; cin>>input; int first_=input.find("-");//第一次出现"-"的位置. int last_=input.rfind("-");//最后一次出现"-"的位置. //cout<<first_<<endl; //cout<<last_; int year = atoi(input.substr(0,4).c_str());//取出年份 int month= atoi(input.substr(first_+1,last_-first_-1).c_str());//取出月份 int day = atoi(input.substr(last_+1).c_str());//取出天数 //cout<<year<<endl; //cout<<month<<endl; //cout<<day; //利用蔡勒公式计算 if(month==1||month==2){ month=month+12;//1月份相当于上一年的13月,2月份相当于上一年的14月 year=year-1; } int c=year/100;//取年份的前两位数 int y=year0;//取年份的后两位数 int m=month; int d=day; int w=int((y+floor(y/4)+floor(c/4)-2*c+floor(26*(m+1)/10)+d-1))%7; if(w<0){ w=w+7; } switch(w){ case 0: cout<<"Sunday"; break; case 1: cout<<"Monday"; break; case 2: cout<<"Tuesday"; break; case 3: cout<<"Wednesday"; break; case 4: cout<<"Thursday"; break; case 5: cout<<"Friday"; break; case 6: cout<<"Saturday"; break; } return 0; }

Tips

如果图片不能正常加载,请保持科学姿势上网。

转载于:https://www.cnblogs.com/overlows/p/9986327.html

相关资源:数电multisim万年历
最新回复(0)