Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Why WA?

Posted by fos at 2005-08-22 00:00:34 on Problem 2080
#include <iostream.h>
#include <string.h>


int mon[2][13]=
{
 {0,31,59,90,120,151,181,212,243,273,304,334,365},
 {0,31,60,91,121,152,182,213,144,174,305,335,366}
};

char * getWeekDay(int n)
{
    int a = (n+6)%7;
    char *wd = new char[10];
    switch(a)
    {
        case 0:
            strcpy(wd,"Sunday");
            break;
        case 1:
            strcpy(wd,"Monday");
            break;
        case 2:
            strcpy(wd,"Tuesday");
            break;
        case 3:
            strcpy(wd,"Wednesday");
            break;
        case 4:
            strcpy(wd,"Thursday");
            break;
        case 5:
            strcpy(wd,"Friday");
            break;
        case 6:
            strcpy(wd,"Saturday");
            break;
    }    
    return wd;
}

void getYear(int n,int &y,int &m,int &d)
{
    int i,a,flag = 0;
    a = 2000+(int)(n-1)/365;
    if (a%4==0 && a%400==0)
    {
        flag = 1;
    }
    a = (int)(a - 2000)/4;
    y = 2000 + (int)(n-1-a)/365;
    a = (n-1-a)%365;
    for(i=1;i<=12;i++)
    {
        if(a<=mon[flag][i])
        {
            m = i;
            d = a-mon[flag][i-1]+1;
            break;
        }
    }
}

void doRun()
{
	int a;
	int y,m,d;
	while(cin>>a)
	{
	    if(a == -1||a<=0)break;
        getYear(a,y,m,d);
        if(y>9999)break;
        cout<<y<<"-"<<(m>9?"":"0")<<m<<"-"<<(d>9?"":"0")<<d<<" "<<getWeekDay(a)<<endl;
	}
}


int main()
{
	doRun();
	return 0;
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator