Code
int dayOfYear(char * date){
int year, month, day, answer = 0;
year = (date[0]-48) * 1000 + (date[1]-48) * 100 + (date[2]-48) * 10 + (date[3]-48);
month = (date[5]-48) * 10 + (date[6]-48);
day = (date[8]-48) * 10 + (date[9]-48);
int month_leap[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int month_notleap[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if((year%4==0&&year%100!=0)||(year%400==0))
{
for(int i=0;i<month-1;i++) answer += month_leap[i];
answer += day;
}
else
{
for(int i=0;i<month-1;i++) answer += month_notleap[i];
answer += day;
}
return answer;
}
//avoid loop
int dayOfYear(char * date){
int year, month, day, answer = 0;
year = (date[0]-48) * 1000 + (date[1]-48) * 100 + (date[2]-48) * 10 + (date[3]-48);
month = (date[5]-48) * 10 + (date[6]-48);
day = (date[8]-48) * 10 + (date[9]-48);
int month_leap[12] = {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};
int month_notleap[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
if((year%4==0&&year%100!=0)||(year%400==0))
{
answer += month_leap[month-1];
answer += day;
}
else
{
answer += month_notleap[month-1];
answer += day;
}
return answer;
}
Problem come across
- How to transform char to int(for numbers)?
char - 48 (char - ‘0’)