怎么判断这一天是否是这个月的最后一天啊,能给出c++ 代码不??????
怎么判断这一天是否是这个月的最后一天啊,能给出c++ 代码不??????
[解决办法]
简单做个表遍历一遍应该就行了。
[解决办法]
用map<int,int>先把月份,天数对应的信息初始化,然后根据你要查询的条件,月份,用map中的find算法查找,返回一个iterator ,这个iterator 的second包含的就是这个月的最后一天。
[解决办法]
[code=C/C++][/code]
#include"iostream.h"
void main()
{
int month,day;
cout<<"Today is:";
cout<<endl;
cin>>month;
cin>>day;
if(month==1 || month==3 || month==5 || month==7 ||month==8 || month==10 ||month==12)
{
if(day==31)
cout<<"today is the last day!";
}
else
if(month==2)
{
if(day==29)
cout<<"today is the last day!";
}
else
{
if(day==30)
cout<<"today is the last day!";
}
}
[解决办法]
#include<iostream>
using namespace std;
int Is_Leap_Year(int year);//判断该年是否是闰年
int main()
{
int mDay,mMonth,mYear,day;
day = 0;
cout<<"请输入年月日"<<endl;
cin>>mYear>>mMonth>>mDay;
if(Is_Leap_Year(mYear)==1)
{
switch(mMonth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = 29;
break;
}
}
if(Is_Leap_Year(mYear)==2)
{
switch(mMonth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = 28;
break;
}
}
if(mDay == day)
{
cout<<"是本月最后一天"<<endl;
}
else
cout<<"不是本月最后一天"<<endl;
return 0;
}
int Is_Leap_Year(int year)
{
//闰年可以被4或者400整除 但是不能被100整除
if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0)
return 1;
else
return 2;
}
[解决办法]
我也来来做习题:
int IsLastDate(int year,int month,int day) //也可以bool{ int months[]={31,0,31,30,31,30,31,31,30,31,30,31}; if(year <= 0) return 0; if(month < 1|| month > 12) return 0; if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0) months[1]=29; else months[1]=28; if(day==months[month-1]) return 1; else return 0;}int main(){ int y=2008; int m=2; int d=28; printf("%d\n",IsLastDate(y,m,d)); return 0;}
[解决办法]
bool CheckLastDay(int year, int month, int day){ bool bLeapYear; if(year%100 != 0) { bLeapYear = !(bool)(year%4); } else { bLeapYear = !(bool)(year%400); } if(month == 2) { if(bLeapYear) { return (day==29); } else { return (day==28); } } else if( ((month <=7) && (bool)(month%2)) || ((month >= 8) && !(bool)(month%2)) ) { return (day==31); } else { return (day==30); }}
------解决方案--------------------
//用bool更好点吧?bool IsLastDate(int year,int month,int day){ int months[]={31,0,31,30,31,30,31,31,30,31,30,31}; if(year <= 0) return false; if(month < 1|| month > 12) return false; if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0) months[1]=29; else months[1]=28; return day == months[month-1];}
[解决办法]
int IsLastDate(int year,int month,int day) //也可以bool
{ int months[]={31,0,31,30,31,30,31,31,30,31,30,31};
if(year <= 0)
return 0;
if(month < 1|| month > 12)
return 0;
if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0)
months[1]=29;
else
months[1]=28;
if(day==months[month-1])
return 1;
else
return 0;
}
int main()
{ int y=2008;
int m=2;
int d=28;
printf("%d\n",IsLastDate(y,m,d));
return 0;
}
其实个人觉得int比较好,以前这种类型都是用bool的,后来进了公司都提倡用int
[解决办法]
[code=C/C++][/code]#include<iostream>
using namespace std;
int IsLastDate(int day,int month,int year)
{
int months[]={31,0,31,30,31,30,31,31,30,31,30,31};
if(year<=1)
return 0;
if(month<1||month>12)
return 0;
if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0)
months[1]=29;
else months[2]=28;
if(day==months[month-1])
cout<<year<<"年"<<month<<"月"<<day<<"日"<<"是"<<month<<"月最后一天!"<<endl;
else if(day<0||day>31)
cout<<"输入错误!";
else
cout<<year<<"年"<<month<<"月"<<day<<"日"<<"不是"<<month<<"月最后一天!"<<endl;
}
int main()
{ int y;
int m;
int d;
cout<<"请输入日期:"<<endl;
cin>>d;
cout<<"请输入月份:"<<endl;
cin>>m;
cout<<"请输入年份:"<<endl;
cin>>y;
IsLastDate(d,m,y);
return 0;
}