C++打印日期

题目描述

给出年分m和一年中的第n天,算出第n天是几月几号。

输入描述:

输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。

输出描述:

可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;

int days[2][13] = { { 0,31,28,31,30,31,30,31,31,30,31,30,31 },
					{ 0,31,29,31,30,31,30,31,31,30,31,30,31} };  

int isLeapYear(int year) 
{
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

		return 1;

	else

		return 0;
}



int main()
{
	int  month, day, num;
    
    int year = 0 ;

	int k = isLeapYear(year);

	while (cin >> year >> num)
	{
		month = 0;
		while (num > days[k][month])
		{
			num -= days[k][month];

			k = isLeapYear(year);

			month++;

		}
		day = num;

		printf("%04d-%02d-%02d\n", year, month, day);

	}

	return 0;

}

		

你可能感兴趣的:(c++,c语言,算法)