日期

 

有错,未改

 
#include <stdio.h>  
#include <iostream>  
#include <math.h>  
#include <string.h> 
#define d 1e-7  
using namespace std;  
char s[15];
int year=-1,month=-1,day=-1;
int YEAR(int year)
{
    if(year%400==0 || (year%4==0 && year%100!=0))    return 366;
    else                                            return 365;
}
int MONTH(int month,int year)
{
    if(month == 1)    return 31;
    else if(month == 2 && YEAR(year)==366)    return 29;
    else if(month == 2 && YEAR(year)==365)    return 28;
    else if(month==3)    return 31;
    else if(month==4)    return 30;
    else if(month==5)    return 31;
    else if(month==6)    return 30;
    else if(month==7)    return 31;
    else if(month==8)    return 31;
    else if(month==9)    return 30;
    else if(month==10)    return 31;
    else if(month==11)    return 30;
    else if(month==12)    return 31;
}

int zh(int bg,int ed)
{
    int i,x=0,t=0; 
    for(i=ed;i>=bg;i--) 
    {
        if(s[i]>='0'&&s[i]<='9')
        {
            x = x + (s[i]-'0')*pow(10,t);
            t++;
        }
        else
            return -1;
    }
    return x;
} 
int main()  
{  
    scanf("%s",s);
    int i,len,sum=0,flag=0;
    len = strlen(s);
    if(len == 10 && s[4]=='-' && s[7]=='-')
    {
        year = zh(0,3);
        month = zh(5,6);
        day = zh(8,9);
    }
    else if(len == 10 && s[2]=='/' && s[5]=='/')
    {
        year = zh(6,9);
        month = zh(0,1);
        day = zh(3,4);
    }
    else
    {
        printf("Error");
        flag = 1;
    }
    //printf("%d %d %d",year,month,day);
    if(year>=0 && month>=0 && month<=12 && day >=1 &&day<=31)
    {
        if(year>=2004)
        {
            for(i=year;i>2004;i--)
                sum += YEAR(i);
        }
        else
        {
            for(i=year;i<2004;i++)
                sum -= YEAR(i+1);
        }
        sum = day-1;
        if(month>=3)    
        {
            for(i=month;i>3;i--)
                sum += MONTH(i,year);
        }
        else  
        {
            for(i=month;i<3;i++)
                sum -= MONTH(i,year);
        }
        printf("%d",sum);
    }
    else
    {
        if(flag==0)
            printf("Error");
    }
        
    return 0;
}     

 

posted @ 2017-12-09 13:42  萌新上路  阅读(75)  评论(0编辑  收藏  举报