zoukankan      html  css  js  c++  java
  • C++简单年月日的功能实现

    //	C++年月日判断初步代码
    #include <iostream>
    
    
    using namespace std;
    
    
    class Data
    {
    	int year;
    	int month;
    	int day;
    public:
    	//判断日期是否有效
    	bool data_check(int _year,int _month,int _day)
    	{
    		year = _year;
    		month =  _month;
    		day = _day;
    
    
    		if(0 > year || 2018 < year) return false;
    		if(0 > month || 12 < month) return false;
    		if(0 > day || 31 < day) return false;
    		return true;
    	}
    	//判断是否是闰年
    	bool leap_year(int _year)
    	{
    		year = _year;
    		if(year%400 == 0 || (year%4 == 0 &&year%100 != 0))//能被4,400整除除去被100整除的都是闰年
    		{
    			return true;
    		}
    		else 
    		{
    			return false;
    		}
    	}
    	//下一天的日期
    	void nextday(int _year,int _month ,int _day)
    	{
    		
    		year = _year;
    		month = _month;
    		day = _day;
    		switch(month)
    		{
    			case 1:
    				if(31 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 2:
    				if((28 == day &&!leap_year(year))||(29 == day &&leap_year(year)))
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 3:
    				if(31 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 4:
    				if(30 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 5:
    				if(31 == day)
    				{
    					month++;
    					day =1;
    					break;
    				}
    			case 6:
    				if(30 == day)
    				{
    					month++;
    					day =1;
    					break;
    				}
    			case 7:
    				if(31 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 8:
    				if(31 == day)
    				{
    					month++;
    					day =1;
    					break;
    				}
    			case 9:
    				if(30 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 10:
    				if(31 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 11:
    				if(30 == day)
    				{
    					month++;
    					day = 1;
    					break;
    				}
    			case 12:
    				if(31 == day)
    				{
    					year++;
    					month = 1;
    					day = 1;
    					break;
    				}
    		}
    		cout << year << "." << month << "." << day << endl;
    	}
    	//列出下n天或者前n天的日期
    	void nextday(int _year,int _month,int _day,int n)
    	{
    		year = _year;
    		month = _month;
    		day = _day;
    		if(0 < n)
    		{
    			
    			for(n =n+1;n>0;n--)
    			{
    				switch(month)
    				{
    					case 1:
    						if(31 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 2:
    						if((28 == day &&!leap_year(year))||(29 == day &&leap_year(year)))
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 3:
    						if(31 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 4:
    						if(30 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 5:
    						if(31 == day)
    						{
    							month++;
    							day =1;
    							break;
    						}
    					case 6:
    						if(30 == day)
    						{
    							month++;
    							day =1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 7:
    						if(31 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else day++;
    					case 8:
    						if(31 == day)
    						{
    							month++;
    							day =1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 9:
    						if(30 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 10:
    						if(31 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 11:
    						if(30 == day)
    						{
    							month++;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    					case 12:
    						if(31 == day)
    						{
    							year++;
    							month = 1;
    							day = 1;
    							break;
    						}else {
    							day++;
    							break;
    						}
    				}
    			cout << year << "." << month << "." << day << endl;
    			}
    		}
    		if(0 > n)
    		{
    			
    			for(n =n-1;n<0;n++)
    			{
    				switch(month)
    				{
    					case 1:
    						if(1 == day)
    						{
    							year--;							
    							month =12;
    							day = 31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 2:
    						if(1 == day)
    						{
    							month--;
    							day = 31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 3:
    						if(1 == day)
    						{
    							month--;
    							if(leap_year(year))
    							{
    								day = 29;
    							}else{
    								day = 28;
    							}
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 4:
    						if(1 == day)
    						{
    							month--;
    							day = 31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 5:
    						if(1 == day)
    						{
    							month--;
    							day =30;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 6:
    						if(1 == day)
    						{
    							month--;
    							day =31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 7:
    						if(1 == day)
    						{
    							month--;
    							day = 30;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 8:
    						if(1 == day)
    						{
    							month--;
    							day =31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 9:
    						if(1 == day)
    						{
    							month--;
    							day = 31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 10:
    						if(1 == day)
    						{
    							month--;
    							day = 30;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 11:
    						if(1 == day)
    						{
    							month--;
    							day = 31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    					case 12:
    						if(1 == day)
    						{
    							month--;
    							day = 31;
    							break;
    						}else {
    							day--;
    							break;
    						}
    				}
    			cout << year << "." << month << "." << day << endl;
    			}
    		}
    	}
    	
    
    
    };
    int main()
    {
    	Data *data = new Data;
    	int year = 1997;
    	int month = 2;
    	int day = 28;
    	int n = -137;
    	cout << data->data_check(year,month,day) << endl;
    	cout << data->leap_year(year) << endl;
    	data-> nextday(year,month,day);
    	data-> nextday(year,month,day,n);
    	
    	
    }
  • 相关阅读:
    国行ME525+(2.3.6)手机系统的备份方法
    JS定时刷新页面及跳转页面
    Webservice数据迁移
    SQL表A更新和表B同步
    C#面试题3
    移动互联
    新闻内容翻页
    教你怎么把服务器上的数据库备份到本地计算机
    asp.net性能优化
    sql2005数据库备份—sql语句
  • 原文地址:https://www.cnblogs.com/gzk1171848896/p/9435956.html
Copyright © 2011-2022 走看看