1154. Day of the Year

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’)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值