模拟求调
  • 板块学术版
  • 楼主无名之雾
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/9 15:35
  • 上次更新2024/6/9 16:44:15
查看原帖
模拟求调
704275
无名之雾楼主2024/6/9 15:35

Date

题目描述

输入一个日期,输出标准化的日期。
输入日期可能是下列两种格式之一:
月/日/年 其中月、日、年均由数字表示。
月 日, 年 其中日、年为数字,月为单词。月和日之间,逗号和年之间恰有一个空格。
标准日期格式如下:
月 日, 年, 星期
其中日、年为数字,月、星期为单词。月和日之间,两个逗号后面恰各有一个空格。
年号均为4位,在1800和2100之间(含1800及2100)。
本题中使用的一至十二月的单词:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
本题中使用的星期日到星期六的单词:
Sunday Monday Tuesday Wednesday Thursday Friday Saturday

输入格式

一行,包含一个日期。前后没有多余空格。

输出格式

一行,包含一个标准格式日期。

样例 #1

样例输入 #1

3/18/2007

样例输出 #1

Mar 18, 2007, Sunday

样例 #2

样例输入 #2

Feb 29, 2000

样例输出 #2

Feb 29, 2000, Tuesday
#include<bits/stdc++.h> 
using namespace std;
#define int long long
inline int read(){
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
inline void write(int x){
    if(x==0){putchar('0');return;}
	int len=0,k1=x,c[10005];
	if(k1<0)k1=-k1,putchar('-');
	while(k1)c[len++]=k1%10+'0',k1/=10;
	while(len--)putchar(c[len]);
}
string ss[20]={" ","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
string sss[10]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};  
int xingqi(int y,int m,int d){  
    if(y%4==0&&y%100!=0||y%400==0)  
    a[2]=29;  
    int ans=d,i;  
    for(i=1;i<=m-1;i++)ans+=a[i];  
    int s,r;  
    s=y-1+(y-1)/4-(y-1)/100+(y-1)/400+ans;  
    r=s%7;  
    cout<<sss[r];  
}  
signed main(){
    string s;
    getline(cin,s);
	bool flag=0;
	for(int i=0;i<s.size();i++){
		if(s[i]=='/')flag=1; 
	} 
	int day=0,mon=0,year=0;
	if(flag){
		int x=0;
		for(int i=0;i<s.size();i++){
			if(s[i]=='/'){
				x=i-1;
				break;
			}
		}
		if(x==0){
			char a=s[0];
			a-='0';
			mon=a;
			cout<<ss[mon]<<" ";
		}
		if(x==1){
			char a=s[0],b=s[1];
			a-='0',b-='0';
			mon=10*a+b;
			cout<<ss[mon]<<" ";
		}
		int y=0;
		for(int i=x+2;i<s.size();i++){
			if(s[i]=='/'){
				y=i-1;
				break;
			}
		}
		if(y-x==2){
			day=s[y]-'0';
			cout<<day<<", ";
		}
		if(y-x==3){
			day=s[y]-'0'+(s[y-1]-'0')*10;
			cout<<day<<", ";
		}
		for(int i=y+2;i<s.size();i++){
			year+=(s[i]-'0')*pow(10,(s.size()-1-i));
		}
		cout<<year<<", ";
		xingqi(year,mon,day);
	}
	else{
		cout<<s<<", "; 
		for(int i=1;i<=12;i++){
			if(ss[i][0]==s[0]&&ss[i][1]==s[1]&&ss[i][2]==s[2])mon=i;
		} 
		if(s[5]==','){
			day=s[4]-'0';
		}
		else{
			day=(s[4]-'0')*10+s[5]-'0';
		}
		for(int i=s.size()-4;i<s.size();i++){
			year+=(s[i]-'0')*pow(10,(s.size()-1-i));
		}
		xingqi(year,mon,day);
	} 
    return 0;
}
2024/6/9 15:35
加载中...