WEB开发网
开发学院软件开发C++ C++根据输入的日期求天数 阅读

C++根据输入的日期求天数

 2012-06-05 14:10:10 来源:WEB开发网   
核心提示:这个小程序可以根据你输入的年份,月份和天数求出是一年中的第几天,C++根据输入的日期求天数,#include <iostream>class Tools{public://用于重置输入流void Recovery();};void Tools::Recovery(){//清空键盘缓冲区std::cin.sy

这个小程序可以根据你输入的年份,月份和天数求出是一年中的第几天。

#include <iostream>

class Tools
{
public:
	//用于重置输入流
	void Recovery();
};

void Tools::Recovery()
{
	//清空键盘缓冲区
	std::cin.sync();
	std::cin.clear();
};

void main()
{
	//闰年的月份天数
	const int Leap_Year_month[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
	//非闰年的月份天数
	const int mon[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
	//临时变量,用于存放月份天数的累加和
	int temp = 0;
	//闰年标志
	bool LeapYear = false;
	//创建工具类对象
	Tools t;
	//for循环变量
	int i;
	int year,month,day;
	std::cout << "请输入年份:";
	std::cin >> year;
	//输入不为数字
	while(! std::cin)
	{
		std::cout << "错误:只能输入数字\n 请重新输入:" << std::endl;
		t.Recovery();
		std::cin >> year;
	}
	//限定年份范围
	while(year <=0 || year > 5000)
	{
		std::cout <<"错误:年份输入不正确 \n 请重新输入:" << std::endl;
		t.Recovery();
		std::cin >> year;
	}
	//判断是否闰年
	if(year % 4 == 0 && year % 100 != 0)
	{
		LeapYear = true;
	}
	else
	{
		LeapYear = false;
	}
	std::cout << "请输入月份:";
	std::cin >> month;
	while(!std::cin)
	{
		std::cout << "错误:只能输入数字\n 请重新输入:";
		t.Recovery();
		std::cin >> month;
	}
	//限定月份输入范围
	while(month <=0 || month >= 13)
	{
		std::cout << "错误:月份只能在1-12之间 \n 请重新输入:";
		t.Recovery();
		std::cin >> month;
	}
	std::cout << "请输入日期:";
	std::cin >> day;
	while(! std::cin)
	{
		std::cout << "错误:只能输入数字\n 请重新输入:";
		t.Recovery();
		std::cin >> day;
	}
	//限定天数输入范围
	while(day <= 0 || day >=32)
	{
		std::cout << "错误:天数只能在1-31之间 \n 请重新输入:";
		t.Recovery();
		std::cin >> day;
	}
	//如果不为闰年
	if(!LeapYear)
	{
		while(day > mon[month-1] )
		{
			std::cout << "\n天数输入错误:"<< year << "年" << month << "月没有" << day << "天" << std::endl;
			std::cout << "请重新输入:";
			t.Recovery();
			std::cin >> day;
		}
	}
	//闰年版本的天数累加
	if(LeapYear)
	{
		switch(month)
		{
		case 1:
			{
				std::cout << "\n这是一年中的第" << day << "天" << std::endl;
				break;
			}
		case 2:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 3:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 4:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 5:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 6:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 7:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 8:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 9:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 10:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 11:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 12:
			{
				for(i=0;i<month-1;i++)
				{
					temp += Leap_Year_month[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		}
	}
	//非闰年版本的天数累加
	else
	{
		switch(month)
		{
		case 1:
			{
				std::cout << "\n这是一年中的第" << day << "天" << std::endl;
				break;
			}
		case 2:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 3:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 4:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 5:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 6:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 7:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 8:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 9:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 10:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 11:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		case 12:
			{
				for(i=0;i<month-1;i++)
				{
					temp +=mon[i];
				}
				std::cout << "\n这是一年中的第" << temp + day << "天" << std::endl;
				break;
			}
		}
	}
}

Tags:根据 输入 日期

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接