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