📄 check_date.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 + -