#include<iostream> 。
using namespace std; 。
class date
{
int year,month,day,xyear,xmonth,xday; 。
public:
void set(int y,int m,int d,int a,int b,int c) 。
{
year=y;
month=m;
day=d;
xyear=a;
xmonth=b;
xday=c;
}
bool isleapyear(int year) 。
{
return ((0==year%4 && 0 != year%100)||(0 == year%400));。
}
int maxnumber(int year,int month) 。
{
int maxnum = 0;。
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))。
{
maxnum = 31;。
}
else if((month==4)||(month==6)||(month==9)||(month==11))。
{
maxnum = 30;。
}
else if(month==2) 。
{
if(isleapyear(year)) 。
{
maxnum = 29;。
}
else
{
maxnum = 28;。
}
}
return maxnum;。
}
int difference(int year,int month,int day,int xyear,int xmonth,int xday) 。
{
int sum=0;
if(xday >= day) 。
{
sum += xday-day;。
}
else{
sum += xday + maxnumber(xyear, xmonth) - day;。
xmonth--;
}
if(xmonth > month) 。
{
while(xmonth > month)。
{
sum=sum+maxnumber(xyear,xmonth);。
xmonth--;
}
}
else{
if(isleapyear(xyear))。
{
xyear--;
int y = 366;。
while(xmonth < month)。
{
y -= maxnumber(year, month);。
month--;
}
sum += y; 。
}
else
{
xyear--;
int z = 365;。
while(xmonth < month)。
{
z -= maxnumber(year, month);。
month--;
}
sum += z;
}
}
if(xyear >= year) 。
{
while(xyear > year ) 。
{
if(isleapyear(xyear))。
{
xyear--;
sum=sum+366;。
}
else{
xyear--;
sum=sum+365;。
}
}
}
return sum;
}
};
void main()
{
int aa,bb,cc,dd,ee,ff,result; 。
cout<<"请输入起始日期"<<endl; 。
cin>>aa>>bb>>cc; 。
cout<<"请输入截止日期"<<endl; 。
cin>>dd>>ee>>ff; 。
date k;
k.set(aa,bb,cc,dd,ee,ff); 。
result=k.difference(aa,bb,cc,dd,ee,ff); 。
cout<<result<<endl; 。
return;
格式很重要,你的代码里有的少了分号,有的函数有参数的你没有传参数。
建议你一行只要写一个执行语句就行了,要不很难找错也不好看。
还有就是定义的函数名与你在调用的地方写的函数名不一致。
该成上面的代码就可以了!
#include <stdio.h>。
#include <stdlib.h>。
int CheckYear(int year)。
if((year%4==0 && year%100!=0 ) || (year%400==0))。
{
return 1;
}
else
{
return 0;
}
int GetMonthDays(int year,int month)。
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
case 2:
if(CheckYear(year)==1)。
{
return 29;
}
else
{
return 28;
}
break;
default:
printf("month error!");。
return 0;
break;
}
int main()
int year,month,day;。
int add;
scanf("%d %d %d",&year,&month,&day);。
scanf("%d",&add);。
int i;
for(i=1;i<=add;i++)。
{
day++;
if(day>GetMonthDays(year,month))。
{
day=1;
month++;
if(month>12)。
{
month=1;
year++;
}
}
}
printf("\n%d %d %d",year,month,day);。
return 0;
TForm1是一个C++类的名字。
hanshu() 是类TForm1中的一个函数名。
类型 类名::函数名(参数)
是实现一个类里面的函数的书写方法。如:
#include <iostream> 。
using namespace std; 。
class Date{
public:
Date(){ year=2009; month=5; day=1; }。
Date(int p_year,int p_month,int p_day);。
~Date(){ }
int get_year();。
int get_month();。
int get_day();。
void set_year(int p_year);。
void set_month(int p_month);。
void set_day(int p_day);。
private:
int year;
int month;
int day;
};
Date::Date(int p_year,int p_month,int p_day){。
this->year=p_year;。
this->month=p_month;。
this->day=p_day;。
int Date::get_year(){。
return year;
int Date::get_month(){。
return month;
int Date::get_day(){。
return day;
void Date::set_year(int p_year){。
this->year=p_year;。
void Date::set_month(int p_month){。
this->month=p_month;。
void Date::set_day(int p_day){。
this->day=p_day;。
void operator>>(istream&in, Date& a){//友元函数cin>>a。
int p_year,p_month,p_day;。
cout<<"输入年份:"; cin>>p_year;。
cout<<"输入月份:"; cin>>p_month;。
cout<<"输入天数:"; cin>>p_day;。
a.set_year(p_year);。
a.set_month(p_month);。
a.set_day(p_day);。
bool Date::is_run_nian(){//辅助函数,是否闰年。
if(year%100==0){//遇到整百年时(如2000,1900,300)要被400整除才是闰年。
if(year%400==0){。
return true;。
}else{
return false;。
}
}else{
if(year%4==0){//遇到非整百年时(如2004,2005),只要被4整除就是闰年。
return true;。
}else{
return false;。
}
}
int Date::get_maxday(){。
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {。
return 31;
}else if(month==4||month==6||month==9||month==11){。
return 30;
}else if(month==2){。
if(is_run_nian()){。
return 29;
}else{
return 28;
}
}else{
return -99999;。
}
void Date::inc(){。
int maxday=get_maxday();。
if(day>=maxday){。
day=1;
if(month>=12){。
month=1;
year++;
}else{
month++;
}
}else{
day++;
}
void main()
cout<<"第一次运行速度有点慢^_^"<<endl;。
Date test1;
cout<<"默认构造函数2009,5,1:";。
#include<stdio.h>。
#include<stdlib.h>。
int isLeap(int year);。
int GetMonthDays(int year,int month);。
int GetWeekDay(int year,int month,int day);。
void PrintMonthCalender(int startDay,int days);。
int a,c,m,n;
int main(void)
int b;
printf("please input year and month:\t");。
scanf("%d%d",&a,&b);。
printf("\t\t\t\t%d--%d\n",a,b);。
printf("\tSun.\tMon.\tTue.\tWed.\tThu.\tFri.\tSat.\t\n");。
c=isLeap(a);。
m=GetMonthDays(a,b);。
n=GetWeekDay(a,b,1);。
PrintMonthCalender(n,m);。
printf("\n");。
system("pause");。
return 0;
int isLeap(int year)。
if((year%4==0&&year%100!=0)||year%400==0)。
return 1;。
else
return 0;。
int GetMonthDays(int year ,int month)。
switch(month)。
{
case 1:
case 5:
case 3:
case 7:
case 8:
case 10:
case 12:
return 31; break;。
case 4:
case 6:
case 9:
case 11:
return 30; break;。
case 2:
if(c==1) return 29 ;break;。
if(c==0) return 28 ;break;。
}
int GetWeekDay(int year,int month,int day)。
int result=0,days,weekDay;。
switch(month-1)。
{
case 11: result += 30;。
case 10: result += 31;。
case 9: result += 30;。
case 8: result += 31;。
case 7: result += 31;。
case 6: result += 30;。
case 5: result += 31;。
case 4: result += 30;。
case 3: result += 31;。
case 2: result += 30;。
case 1: result += 31;。
case 0: result += day;。
}
if (c==1) result++;。
days=(a-1)*365+(a-1)/400-(a-1)/100+(a-1)/4;。
days+=result;。
weekDay=days%7;。
return weekDay;。
void PrintMonthCalender(int startDay,int days)。
int i=3; /* 从3开始循环 */。
switch(startDay)。
{
case 6: printf("\t");。
case 5: printf("\t");。
case 4: printf("\t");。
case 3: printf("\t");。
case 2: printf("\t");。
case 1: printf("1\t"); /* 从1 开始*/。
case 0: printf("2");break; /* 2固定在1后面 */。
}
for(;i<=m;i++)。
{
startDay++;。
printf("\t%d",i);。
if( startDay%7 == 0 ) printf("\n"); /* 一行7个数据*/。
}
运行效果:
#include<stdio.h>。
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int minute = 0;。
int second = 0;。
int main()
void inputDate(); /*输入年-月-日 时:分:秒*/。
void nextSceond(); /*计算下一秒的时间*/。
int leapYear(int year); /*判断是否为闰年*/。
int dayMonth(int month); /*返回每个月份对应的天数*/。
inputDate();。
leapYear(year);。
dayMonth(month);。
nextSceond();。
system("PAUSE");。
return 0;
/*函数inputDate()输入年-月-日 时:分:秒*/。
void inputDate()。
int loop;
for(loop = 0; loop < 3; loop++)。
{
printf("请输入年-月-日 时:分:秒:");。
scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);。
if(month < 1 || month > 12)。
{
printf("\t月份输入错误!\n");。
continue;。
}
else if(day < 1 || day > dayMonth(month))。
{
printf("\t日期输入错误!\n");。
continue;。
}
else if(hour < 0 || hour > 23)。
{
printf("\t小时输入错误!\n");。
continue;。
}
else if(minute < 0 || minute > 59)。
{
printf("\t分钟输入错误!\n");。
continue;。
}
else if(second < 0 || second > 59)。
{
printf("\t秒数输入错误!\n");。
continue;。
}
else
{
break;。
}
}
/*函数nextSecond()计算下一秒的时间*/。
void nextSceond()。
if(59 == second)。
{
minute += 1;。
second = 0;。
if(60 == minute)。
{
hour += 1;。
minute = 0;。
if(24 == hour)。
{
day += 1;。
hour = 0;。
if(day > dayMonth(month))。
{。
month += 1;。
day = 1;。
if(13 == month)。
{。
year += 1;。
month = 1;。
}。
}。
}
}
}
else
{
second += 1;。
}
printf("%d-%d-%d %d:%d:%d\n",year, month, day, hour, minute, second);。
/*函数leapYear(int year)判断是否为闰年*/。
int leapYear(int year)。
if(0 == (year % 4 && 0 != year % 100) || 0 == year % 400)。
{
return 1;。
}
else
{
return 0;。
}
/*函数名dayMonth(int month)返回每个月份对应的天数*/。
int dayMonth(int month)。
switch(month)。
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:。
case 12:。
return 31;。
case 2:
if(0 == (year % 4 && 0 != year % 100) || 0 == year %400)。
{
return 29;。
}
else。
{
return 28;。
}
case 4:
case 6:
case 9:
case 11:。
return 30;。
}
请放心使用
有问题的话请追问
满意请及时采纳,谢谢