文字列を扱う日-7

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>

using namespace std;
const int maxn=10010;
const int N=10;

string weekday[]={"Monday","Tuesday","Wednesday","Thursday",
"Friday","Saturday","Sunday"};

bool isleap(int y) 
{ return ((y%400==0)||(y%100!=0&&y%4==0) ); }

int whatday(int y,int m,int d){
	
	int ans=0;
	for(int i=1;i<y;i++){
		
		if(isleap(i)) ans=(ans+366)%7;
		else          ans=(ans+365)%7;
	}
	
	for(int i=1;i<m;i++){
		
		if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) ans=(ans+31)%7;
		else if(i==2){
			
			if(isleap(y)) ans=(ans+29)%7;
			else ans=(ans+28)%7;
		}
		else ans=(ans+30)%7;
	}
    	
	ans=(ans+d-1)%7;
	
	return ans;
}

int main(){
	
	int y,m,d;
	
	cin>>y>>m>>d;
	
	cout<<weekday[whatday(y,m,d)]<<endl;
	
	return 0;
}

 

公開された138元の記事 ウォン称賛18 ビュー7043

おすすめ

転載: blog.csdn.net/qq_924485343/article/details/104334387