c++ 知相隔天数求日期 10

我是新手,求帮助;已知一个日期求加或减某天数后的日期;能有具体代码最好,或者vs自带的类/函数也行(具体用法)... 我是新手,求帮助;
已知一个日期求加或减某天数后的日期;

能有具体代码最好,或者vs自带的类/函数也行(具体用法)
展开
 我来答
soul_tuan_z
2014-03-15 · TA获得超过1302个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:223万
展开全部
给你一个已知两个日期求相隔天数的代码。

思路是这样的,以元年1月1日为标准,求出之后每天距离元年1月1日的天数存在数组里。
你改一下就能变成一直天数求日期。

#include <iostream>
using namespace std;

#define ISYEAP(x) (x)%100!=0&&(x)%4==0||(x)%400==0?1:0 //判断是否为闰年

int dayOfMoth[13][2]={ //每个月有多少天
0,0, //分为是否为闰年两种情况
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31
};

struct Date
{
int year;
int moth;
int day;
void nextDay() //求下一天的日期
{
day++;
if(day>dayOfMoth[moth][ISYEAP(year)])
{
day=1;
moth++;
if(moth>12)
{
moth=1;
year++;
}
}
}
};

int buf[5001][13][32]; //buf[年][月][日] 存该天距离0年1月1 //日有多少天

int main()
{
struct Date date={0,1,1},date1,date2;
int d1,d2;
int count=0;
int ans;
int a,b;

while(date.year!=5001)
{
buf[date.year][date.moth][date.day]=count;
date.nextDay();
count++;
}

while(cin>>d1)
{
cin>>d2;
a=buf[d1/10000][d1%10000/100][d1%100]; //输入格式为20140315
b=buf[d2/10000][d2%10000/100][d2%100];
ans=a-b;
if(ans<0)
ans=ans*(-1);
ans++;
cout<<ans<<endl;
};
return 0;
}
追问
如何改实现减天数求日期
追答
方法1:跟据日期1,计算出日期二距离元年1月1日的天数,然后遍历数组。
方法2: 依照nextday方法,写一个计算前一天日期的方法,利用这两个函数,写一个循环

for(i=0;i<n;i++)
x.nextday。 还有其他的思路你可以自己想想。
巨润利020
2014-03-15 · TA获得超过171个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:259万
展开全部
#include <time.h>
#include <iostream>
using namespace std;

int main(void)
{
time_t ltime;
char buf[26];

time(<ime);

cout<<"请输入加减天数(减天数加负号)"<<endl;

int n = 0;

cin >> n;

ltime += n * 60 * 60 * 24;

ctime_s(buf, 26, <ime);

cout<< buf<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式