⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check_date.cpp

📁 AA制消费管理系统 要深入学习C++面向对象编程的同学可以看看。
💻 CPP
字号:
#include "check_date.h"
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

int C_check_date::_year=0;
int C_check_date::_month=0;
int C_check_date::_day=0;
char C_check_date::str_temp[15]={'0'};
/////////////////////////////////////////////////
int C_check_date::check_date(string str)
{
	
	int n=str.size();
	char str_year[10];//*****************用来存 从字符串上 获取的 年 月 日的数值
	char str_month[10];
	char str_day[10];
	int year,month,day;// 用于判断 闰年 的 年月日 范围
	int count=0;
	if(str[0]=='-')
	{
		return 7;
	}
	for(int i=0;i<n;i++)
	{
					
		if(!((str[i]>='0')&&(str[i]<='9'))&&(str[i]!='-'))
		{
			return 7; //************ 不是日期类型 返回0     //************** 判断输入格式的   
		}
		else
		{
			if((str[i]=='-')&&(str[i+1]!='-'))
			{
				count++;
			}
			if((str[i]=='-')&&(str[i+1]=='-'))
			{
				return 7;
			}
			if(!((str[i+1]>='0')&&(str[i+1]<='9'))&&(str[i]=='-'))
			{
				return 7;
			}
			
			continue;
			
		}
		
	}
	if(count!=2)
	{
		return 7;
	}
	
	
//	 	return 1;//**************** 是日期类型 返回1
	
	const char *str1;
	str1=str.c_str();
	char* temp=NULL;
	temp=strchr(str1,'-');
	int j=0;
	i=0;
	while(*(str1+i)!=*temp)  //******get  year
	{
		*(str_year+i)=*(str1+i);
		
		i++;
	}
	*(str_year+i)='\0';
	i=1;
	while(*(temp+i)!='-') //**********get month
	{
		*(str_month+j)=*(temp+i);	
		i++;
		j++;
	}
	*(str_month+j)='\0';
	j=0;
	while(*(temp+i+1)!='\0') //**********get day
	{
		*(str_day+j)=*(temp+i+1);	
		i++;
		j++;
	}
	*(str_day+j)='\0';
	year=atoi(str_year);
	_year=year;
	month=atoi(str_month);
	_month=month;
	day=atoi(str_day);
	_day=day;
	//cout<<year<<month<<day<<endl;//************************测试 是否转换成功
	if(!(month>=1&&month<=12))
	{
		return 7;
	}
	
	
	if((year%4==0&&year%100!=0)||(year%400==0))
	{
		
		switch(month)
		{
			case 1:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 2:
				if(!(day>=1&&day<=29))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
				
			case 3:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 4:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 5:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 6:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 7:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 8:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 9:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 10:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 11:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 12:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			}
					
	}
	else
	{
		
		switch(month)
		{
			case 1:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 2:
				if(!(day>=1&&day<=28))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
				
			case 3:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 4:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 5:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 6:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 7:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 8:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 9:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 10:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 11:
				if(!(day>=1&&day<=30))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			case 12:
				if(!(day>=1&&day<=31))
				{
					return 7;
				}
				else
				{
					return 1;
				}
				
			}		
		
	}
		
	return 1;	
	
}
///////////////////////////////////////////////////
int C_check_date::getYear()
{
	return _year;
}
int C_check_date::getMonth()
{
	return _month;
}

int C_check_date::getDay()
{


	return _day;

}
////////////////////////////////////////////////////////
char* C_check_date::changeToStdDate( )
{
	
	{
		
		char str_temp1[5];

		itoa(_year,str_temp1,10);
		strcpy(str_temp,str_temp1);
		strcat(str_temp,"-");
		itoa(_month,str_temp1,10);
		if(strlen(str_temp1)==1)
		{
			strcat(str_temp,"0");
		}
		strcat(str_temp,str_temp1);
		strcat(str_temp,"-");
		itoa(_day,str_temp1,10);
		if(strlen(str_temp1)==1)
		{
			strcat(str_temp,"0");
		}
		strcat(str_temp,str_temp1);
		return str_temp;
		


 	}















}

⌨️ 快捷键说明

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