pvjc20/du3/program.c

53 lines
782 B
C

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char *str;
str = (char*) malloc(12);
scanf("%s",str);
int day=0;
int m=0;
int y=0;
if(str[1]=='.'){
day+=str[0]-48;
m+=(str[2]-48)*10+(str[3]-48);
y+=(str[5]-48)*1000+(str[6]-48)*100+(str[7]-48)*10+str[8]-48;
}
else{
day+=(str[0]-48)*10+(str[1]-48);
m+=(str[3]-48)*10+(str[4]-48);
y+=(str[6]-48)*1000+(str[7]-48)*100+(str[8]-48)*10+str[9]-48;
}
if( (day<0 || day>=31)||(m<0 || m>12)){
return 0;
}
day+=7;
if(day>31 && m%2!=0){
day-=31;
m++;
}
else if(day>30 && m%2==0){
if(m==2 &&(y%400==0 ||(y%100!=0 && y%4==0))){
day-=29;
}
else{
day-=31;
}
m++;
}
if(m>12){
m-=12;
y++;
}
printf("%d.%d.%d",day,m,y);
return 0;
}