A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁胜平 中级黑马   /  2015-4-11 11:01  /  429 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
1.定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题),要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回主函数输出。
*/

typedef struct date{
    int year;
    int month;
    int day;
}Date;


BOOL isLeapYear(int year);//判断是否是闰年
BOOL isLeapYear(int year)
{
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
        return YES;
    }
    return NO;
}

int days(Date someDate);//计算天数
int days(Date someDate)
{
    int totalDaysFromYearStart = 0;
    switch (someDate.month) {
        case 12:
            totalDaysFromYearStart += 30;
        case 11:
            totalDaysFromYearStart += 31;
        case 10:
            totalDaysFromYearStart += 30;
        case 9:
            totalDaysFromYearStart += 31;
        case 8:
            totalDaysFromYearStart += 31;
        case 7:
            totalDaysFromYearStart += 30;
        case 6:
            totalDaysFromYearStart += 31;
        case 5:
            totalDaysFromYearStart += 30;
        case 4:
            totalDaysFromYearStart += 31;
        case 3:
            totalDaysFromYearStart += 28;
            totalDaysFromYearStart += isLeapYear(someDate.year) ? 1 : 0;
        case 2:
            totalDaysFromYearStart += 31;
        case 1:
        default:
            break;
    }
    totalDaysFromYearStart += someDate.day;
    return totalDaysFromYearStart;
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马