C++判断闰年

#include<iostream>
using namespace std;

#define YEARERROR -1
#define MONTHERROR -2
#define DAYERROR -3

int day[13] = { 29,31,28,31,30,31,30,31,31,30,31,30,31 }; //数组多用于查表

int Judgmentinput(int const Year, int Month, int const Day);
bool Leapyear(int const Year);
void Calculateddays(int const Year,int Month, int const Day);
void Subject();
int main()
{
	Subject();
	return 0;
}

bool Leapyear(int const Year)
{
	return ((0 == Year % 4 && 0 != Year % 100) || 0 == Year % 400);

}

void Calculateddays(int const Year,int  Month, int const Day)
{
	if (Leapyear(Year))
	{
		int count = 0;
		for (int i = 1; i < Month; ++i)
		{
			if (2 == i)
			{
				i = 0;
			}
			count += day[i];
		}
		count += Day;
		cout << count;
	}
	else
	{
		int count = 0;
		for (int i = 0; i < Month; ++i)
		{
			count += day[i];
		}
		count += Day;
		cout << count;
	}
}
int Judgmentinput(int const Year, int Month, int const Day)
{
	if (2==Month&&Leapyear)
	{
		Month = 0;
	}
	if (Year < 1)
	{
		return YEARERROR;
	}
	if (Month < 1 || Month>12)
	{
		return MONTHERROR;
	}
	if (Day<1 || Day>day[Month])
	{
		return DAYERROR;
	}
}

void Subject()
{
	int Year;
	int Month;
	int Day;
	int flag;
	char ch;

	do
	{
		cout << "请输入年月日";
		cin >> Year >> Month >> Day;
		flag = Judgmentinput(Year, Month, Day);
		switch (flag)
		{
		case -1:cout << "YEARERRPR" << endl;
			break;
		case -2:cout << "MONTHERROR" << endl;
			break;
		case -3:cout << "DAYERROR" << endl;
			break;
		default:
			Calculateddays(Year, Month, Day);
			break;
		}
		cout << "是否继续输入 按Y确认" << endl;
		getchar();
		cin >> ch;
	} while ('Y' == ch || 'y' == ch);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值