90分求助
查看原帖
90分求助
910927
HUANGKE99楼主2024/10/24 21:02
#include<bits/stdc++.h>
#define int long long
using namespace std;
int mon[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
signed main(){
	string s;
	cin>>s;
	int j=0,d=0,m=0,y=0;
	while(isdigit(s[j]))
		d=s[j]-'0'+d*10,j++;
	string b="";
	while(!isdigit(s[j]))
		b+=s[j],j++;
	if(b=="JAN")
		m=1;
	if(b=="FEB")
		m=2;
	if(b=="MAR")
		m=3;
	if(b=="APR")
		m=4;
	if(b=="MAY")
		m=5;
	if(b=="JUN")
		m=6;
	if(b=="JUL")
		m=7;
	if(b=="AUG")
		m=8;
	if(b=="SEP")
		m=9;
	if(b=="OCT")
		m=10;
	if(b=="NOV")
		m=11;
	if(b=="DEC")
		m=12;
	while(isdigit(s[j]))
		y=s[j]-'0'+y*10,j++;
	int day=d;
	for(int i=1;i<y;i++){
		if(i>1582)
			if((i%4==0&&i%100!=0)||i%400==0)
				day+=366;
			else
				day+=365;
		else if(i<1582)
			if(i%4==0)
				day+=366;
			else
				day+=365;
		else
			day+=355;
	}
	if(y>1582)
		if((y%4==0&&y%100!=0)||y%400==0)
			mon[2]=29;
	else if(y<1582)
		if(y%4==0)
			mon[2]=29;
	else
		mon[10]=21;
	for(int i=1;i<m;i++)
		day+=mon[i];
	if(y==1582&&m==10&&d>=15)
		day-=10;
	cout<<day-1;
	return 0;
}
嘤嘤嘤,做了160分钟都没刷掉
2024/10/24 21:02
加载中...