求解任意两日期间相隔的天数

本文介绍了一种闰年判断的方法,并提供了一个简单的C++程序实现。此外,还展示了如何计算两个日期之间的天数,包括日期加减操作的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闰年判断

if((year%400==0)||year%4==0&&year%100!=0)

则是闰年


#include<iostream>
using namespace std;

class Date
{
    private:
    int year,month,day;

public:

.........

};


int mon(int year,int month)

 {

 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(year%400==0||(year%4==0&&year%100!=0)

return 29;

 else

return 28;

 }


/*注:日期类的定义省略*/

/*一个·日期相加n天,后的日期*/

int data(int n)

{

  day+=n;

int y=year;

int m=month;

while(day>mon(y,m))

  {

 day-=mon(y,m);

    m++;

  if(m>12)

     {

m=1;

  y++;

     }

  }

}

}

//相减,同理

/****************************************************/

/*任意两个日期间的天数*/

#include<iostream>
using namespace std;

class Date
{
    private:
    int year,month,day;

public:

Date operator&(Date &p)

 {

  int flag;

     if(year!=p.year) { flag=1;  if(year<p.year) flag=-1; }

            else if(month!=p.month) { flag=1;  if(month<p.monthr) flag=-1; }

               else

                return day-p.day;

 

 int y1,m1,d1,y2,m2,d2;

 if(flag==-1)

{ y1=year; m1=month; d1=day; y2=p.year; m2=p.month; d2=p.day;  }

else

{ y2=year; m2=month; d2=day; y1=p.year; m1=p.month; d1=p.day;  }

int i=y1,j=m1;

int s=0;

 while(i!=y2||j!=m2)

 {

   s=s+mon(i,j);

     j++;

  if(j>12)

  { j=1; s++ }

   }

  s=s+d2-d1;

  s=s*flag;

return s;

};







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值