2005.c

来自「杭电的ACM上的一些题目。 1108、2001、2002、2003、2004、」· C语言 代码 · 共 55 行

C
55
字号
/************************************************************************** 
Problem Description
给定一个日期,输出这个日期是该年的第几天。

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
 
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 
Sample Input
1985/1/20
2006/3/12
 
Sample Output
20
71

/**************************************************************************/
#include <stdio.h>

/*函数声明*/
int Day_Year(int year, int month, int day);

/**/
int main(void)
{
    int year, month, day;

    while(scanf("%d/%d/%d", &year, &month, &day)!=EOF)
    {
		printf("%d\n",Day_Year(year, month, day));
    } 

    return 0;
}

/**************************************************************************/
/*某天是一年中的第几天                                                    */
/**************************************************************************/
int Day_Year(int year, int month, int day)
{
    int tab[12] = 
    {
        0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
    };
    int leap;
    /*闰年判断*/
    leap = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
    return tab[month - 1] + day + (month > 2 ? leap : 0);
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?