请懂C++的高手帮个忙~!

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:36:52
用C++编程完成下面问题:
输入两个日期(年、月、日),计算出这两个日期之间差多少天。
哪位能帮忙解决~!
万分感谢~!
可不可以写的行数少一点~!
只要两个日期之间差多少天~!
仅此而已~!

#include "stdio.h"
/* 年 yr,月 mn, 日(含小时分秒)dy
* 返回当天的修正儒略日(modified Julian date)mjd
* 从1582年10月15开始使用格利高里历(就是阳历)
* (教皇格利高里十三世丢掉了十天--1582年十月5到14,改进了
* 闰年算法--400年97闰).
*/

void cal_mjd(int mn,double dy,int yr,double *mjd)
{
static double last_mjd, last_dy;
static int last_mn,last_yr;
int b,d,m,y;
long c;

if(mn==last_mn&&yr==last_yr&&dy==last_dy)
{
*mjd=last_mjd;
return;
}
m=mn;
y=(yr<0)?yr+1:yr;
if(mn<3)
{
m+=12;
y-=1;
}
if(yr<1582||(yr==1582&&(mn<10||(mn==10&&dy<15)))) b=0;
else
{
int a;
a=y/100;
b=2-a+a/4;
}
if(y<0)
c=(long)((365.25*y)-0.75)-694025L;
else
c=(long)(365.25*y)-694025L;
d=(int)(30.6001*(m+1));
*mjd=b+c+d+dy-0.5;
last_mn=mn;
last_dy=dy;
last_yr=yr;
last_mjd=*mjd;