65,210
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void adddays(int &year,int &month, int &day, int num){//num是添加的天数
}
int main()
{
char str[] = "20081030";
int year, month, day;
sscanf(str, "%4d%2d%3d", &year, &month, &day);
int days;
scanf("%d", &days);
adddays(year, month, day, days);
sprintf(str, "%4d%2d%2d", year, month, day);
puts(str);
return 1;
}
#include <iostream.h>
long CalcDays(long date,int offset)
{
int DayInMonth[12]={31,0,31,30,31,30,31,31,30,31,30,31};
int temp;
int year=date/10000;
int month=date/100-year*100;
int day=date%100;
while(offset>=DayInMonth[(month-1)%12])
{
if (++month>12)
{
month=1;
year++;
if(year%400==0||(year%4==0&&year%100!=0))
DayInMonth[1]=29;
else
DayInMonth[1]=28;
}
offset-=DayInMonth[(month-1)%12];
}
temp=day;
day=(day+offset-1)%DayInMonth[(month-1)%12]+1;
month+=(temp+offset-1)/DayInMonth[(month-1)%12];
year+=(month-1)/12;
month=(month-1)%12+1;
return (long)year*10000+month*100+day;
}
void main()
{
cout<<CalcDays(20031231,30)<<endl;
}
#include <iostream.h>
#include <conio.h>
class date
{
private:
int year, month, day;
public:
date(int y = 2003, int m = 12, int d =30) //构造函数
{
year = y;
month = m;
day = d;
}
set_date(); //设置日期
add_day(int, int, int, int); //加天
int IsLeapYear(int y); //判断闰年
int get_year(){return year;} //返回年
int get_month(){return month;} //返回月
int get_day(){return day;} //返回日
print_date(int i)
{
cout<<" "<<i<<" "<<day<<"/"<<month<<"/"<<year;
if(IsLeapYear(year))
cout<<" (闰年)"<<endl;
else
cout<<" (不是闰年)"<<endl;
}
~date(); //析构函数
};
date::set_date() //设置日期
{
int y, m, d;
cout<<"请输入要年:"<<endl;
cin>>y;
cout<<"请输入要月:"<<endl;
cin>>m;
cout<<"请输入要日:"<<endl;
cin>>d;
year = y;
month = m;
day = d;
}
date::add_day(int num, int y, int m, int d) //加天
{
int month_day[]={29,31,28,31,30,31,30,31,31,30,31,30,31};
int addday, total, i;
year=y;
if(IsLeapYear(year))
total = 366;
else
total = 365;
cout<<"请输入要加的天数: \n";
cin>>addday;
while(addday>=total) //加年
{
year++;
addday-=total;
if(IsLeapYear(year))
total = 366;
else
total = 365;
}
if(IsLeapYear(year)&&(m==2))
i = 0;
else
i = m;
while(addday>=month_day[i]) //加月
{
month++;
if(month>12)
{
year++;
month=1;
}
addday-=month_day[i];
if(IsLeapYear(year)&&(m==2))
i = 0;
else
i = m;
}
d+=addday;
while(d>=month_day[i]) //加天
{
d-=month_day[i];
month++;
if(month>12)
{
year++;
month=1;
}
if(IsLeapYear(year)&&(m==2))
i = 0;
else
i = m;
}
day=d;
}
int date::IsLeapYear(int y) //判断闰年
{
if(((y%4==0)&&(y%100!=0))||(y%400==0))
return 1;
else
return 0;
}
date::~date() //析构函数
{
//
}
int main(int argc, char* argv[])
{
date *date1;
date1 = new date[5];
int num=0, y, m, d;
if(!date1)
{
cout<<"allocation failure!"<<endl;
exit(0);
}
for(int i=0; i<5; i++)
date1[i].print_date(i);
cout<<"请输入要修改的日期编号:"<<endl;
cin>>num;
if((num>=0)&&(num<=4))
{
date1[num].set_date();
for(int i = 0; i<5; i++)
date1[i].print_date(i);
}
else
cout<<"没有该编号"<<endl;
cout<<"请输入年份判断是否是闰年"<<endl;
cin>>y;
date test(y);
if(test.IsLeapYear(y))
cout<<"是闰年"<<endl;
else
cout<<"不是闰年"<<endl;
cout<<"请输入要加天数的日期编号:"<<endl;
cin>>num;
y = date1[num].get_year();
m = date1[num].get_month();
d = date1[num].get_day();
date1[num].add_day(num, y, m, d);
cout<<"加天后的日期为: ";
date1[num].print_date(num);
cout<<"=====================\n按任意键结束程序"<<endl;
getch();
delete []date1;
return 0;
}