我的目标是将天数添加到日期并返回正确的日期。
我让用户输入一个日期(dd、mm、yyyy)以及他们希望进入 future 的天数(天)。
你能帮我提高逻辑吗
我的结果输出是,如果我输入一个日期,例如:18/10/2014 并添加 100 天,我会得到日期 118/10/2014,这显然是不正确的。
void dateafter(int *pd, int *pm, int *py, int *pdtm, int *pdty, int *days ){
while(*days >= 0){
if(*days > *pdty){
*py += 1;
daymonthyear(*pm, *py, *pdtm, *pdty);
*days -= *pdty;
}
if(*days > *pdtm - *pd){
*pm = *pm + 1;
if(*pm > 12){
*pm = 1;
*py = *py + 1;
}
daymonthyear(*pm,*py,*pdtm,*pdty);
*days -= *pdtm;
}
else{
*pd += *days;
break;
}
}
}
pdtm 指本月的天数,pdty 指 pdty daymonthyear 计算每月和每年的天数。
谢谢
最佳答案
将日期转换为 Unix 时间。请参阅http://linux.die.net/man/3/strptime会这样做。
添加秒数。 (一天 = 24 * 60 * 60)秒。
使用strftime转换回来
关于c - 带有日期函数的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26438949/