请问怎么把日期相加?

fire_zxv 2002-03-19 10:08:43
val1: yyyymmdd格式的日期字符串
val2: 天数
返回:yyyymmdd格式的日期字符串
CString CExpress::AddDate(CString val1, int val2)
{
return val1;
}


该怎么写这个函数呢?
...全文
132 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiko_lee 2002-03-19
  • 打赏
  • 举报
回复
你可以将其中的日期单独的读取出来,修改以后,再重新的放入CTime中间
fire_zxv 2002-03-19
  • 打赏
  • 举报
回复
CTime time1(1999,3,19,00,00,0);
CTime time2= CTime::GetCurrentTime();
CTime time2(1999,3,20,00,00,0);
int a = time1 - time2;
CString s =time2.Format("%Y%m%d");
printf(s);
好象不行啊!!
好象不能直接加天数的啊
fire_zxv 2002-03-19
  • 打赏
  • 举报
回复
那个……
能告诉我CString 怎么转成CTime吗?
再怎么转回来呢?
holy_cyt 2002-03-19
  • 打赏
  • 举报
回复
对,之后用CTime::Format()将CTime转成字符串。具体看msdn帮助
jinancf 2002-03-19
  • 打赏
  • 举报
回复
同上,CTime好像可以直接加天数。
Flysnow 2002-03-19
  • 打赏
  • 举报
回复
首先把CString val1转成CTime类型,然后找有函数是加天数的吧,再转成CString就可以了
LLnju 2002-03-19
  • 打赏
  • 举报
回复
为什么用string记录时间,用DATE不好吗? typedef double DATE; 要加100.125 天就 dt += 100.125。企不简单。
LLnju 2002-03-19
  • 打赏
  • 举报
回复
为什么用string记录时间,用DATE不好吗? typedef double DATE; 要加100.125 天就 dt += 100.125。企不简单。
fire_zxv 2002-03-19
  • 打赏
  • 举报
回复
基本都写来了~
最后的问题!
怎么把CString型转换为int型
好象就是强制转换一下吧?
答完放分
xhuangp 2002-03-19
  • 打赏
  • 举报
回复
建议用
struct tm 没那么麻烦.


struct tm when;
time_t now, result;
int days;

time( &now );
when = *localtime( &now );
printf( "Current time is %s\n", asctime( &when ) );
printf( "How many days to look ahead: " );
scanf( "%d", &days );

when.tm_mday = when.tm_mday + days;
if( (result = mktime( &when )) != (time_t)-1 )
printf( "In %d days the time will be %s\n",
days, asctime( &when ) );
else
perror( "mktime failed" );


fire_zxv 2002-03-19
  • 打赏
  • 举报
回复
回newman0708(春华)
你写的程序不错
可是不能进位
就是不能按月进位
wwwsq 2002-03-19
  • 打赏
  • 举报
回复

CTime tm(yyyy, mm, dd, 0, 0, 0); // 省了点事,构造函数里应该是int参数,atol(str)/10000, (atol(str)/100)%10000, atol(str)%100即可
CTimeSpan tmspan(nDays);

tm += tmspan;

return tm.Format("%Y%M%D");
newman0708 2002-03-19
  • 打赏
  • 举报
回复
val1: yyyymmdd格式的日期字符串
val2: 天数
返回:yyyymmdd格式的日期字符串
struct DATESTRUCT
{int ds_year;
int ds_month;
int ds_day;
};
CString CExpress::AddDate(CString val1, int val2)
{
CString str;
str=var1;
str.TrimLeft();
DATESTRUCT *ds;
ds->ds_year =atoi(str.Left(4));//2002,03,19
ds->ds_month=atoi(str.Mid(5,2));
ds->ds_day =atoi(str.Mid (8,2))+var2;
CTime t(ds->ds_year ,ds->ds_month ,ds->ds_day ,0,0,0);
CString var1=t.format("Y","m","D");
return val1;
}
newman0708 2002-03-19
  • 打赏
  • 举报
回复
val1: yyyymmdd格式的日期字符串
val2: 天数
返回:yyyymmdd格式的日期字符串
struct DATESTRUCT
{int ds_year;
int ds_month;
int ds_day;
};
CString CExpress::AddDate(CString val1, int val2)
{
CString str;
str=var2;
str.TrimLeft();
DATESTRUCT *ds;
ds->ds_year =atoi(str.Left(4));//2002,03,19
ds->ds_month=atoi(str.Mid(5,2));
ds->ds_day =atoi(str.Mid (8,2));
CTime t(ds->ds_year ,ds->ds_month ,ds->ds_day ,0,0,0);
CString var1=t.format("y""m""D");
return val1;
}




ma811 2002-03-19
  • 打赏
  • 举报
回复
CTimeSpan

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧