QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4717|回复: 8
打印 上一主题 下一主题

关于月份相加的算法!

[复制链接]
字体大小: 正常 放大
xShandow        

43

主题

1

听众

385

积分

升级  28.33%

该用户从未签到

国际赛参赛者

新人进步奖

跳转到指定楼层
1#
发表于 2004-11-28 12:54 |只看该作者 |正序浏览
|招呼Ta 关注Ta
<>月份相加,把我弄糊涂了.哪位大侠给解释一下.该如何加,才是最标准的?或是有思路就好.</P>
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
GraBUAA        

0

主题

3

听众

232

积分

升级  66%

  • TA的每日心情
    开心
    2012-5-25 09:22
  • 签到天数: 41 天

    [LV.5]常住居民I

    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    回复

    使用道具 举报

    xShandow        

    43

    主题

    1

    听众

    385

    积分

    升级  28.33%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    <>谢谢无名.</P><>我的算法和你又不一样.
    0 x) c9 C4 o1 _8 ^& `& a4 C0 \( p. s我是按加的月数,循环加的.5 `' S! ?% N1 i1 o: }) y/ H
    每加一次判断:当前天是否大于当前月的天数,大于的话,当前天-当前月的天数,月数再加,如果月数大于12,月数=1,年数加1
    , C6 A0 _) D( n# l* U0 @每减一次判断:当前月是否小于1,小于,月数=12,年数减1,判断当前天数,当前天数是否大于当前月,是的,...就这样,反正就是烦,我也不知道这种算法是否科学.还请多讨论一下.嘿嘿!</P>
    回复

    使用道具 举报

    无名        

    5

    主题

    1

    听众

    68

    积分

    升级  66.32%

    该用户从未签到

    新人进步奖

    //计算月末日期9 }( y3 z) ]/ t/ c$ m! n
    CString CalcDate(const CString &amp; csOldDate, int nMonthInc)1 h! _( G8 R' n! m. H2 r
    {
    . Y' j, A* `3 a& R* z. d: b- q' B int nYear = atoi(csOldDate.Left(4));3 ^8 L) w! s9 m1 s
    int nMonth = atoi(csOldDate.Mid(4, 2));
    $ E; ]# g- ~2 _. } int nMonthTmp = nMonth + nMonthInc;                                //十进制的月! P3 _# e) n5 `, R8 K+ X' f& D8 E3 ~
    nMonth = (nMonthTmp + 11) % 12 + 1;                                //十二进制的月
    # f$ N4 Y7 c! d- T nYear += (nMonthTmp - nMonth) / 12;                                //年进(借)位+ f1 P& S/ K# @" ?1 H* \  e- P
    int nDay;
    / a; w! V/ o  l2 D. w# ^6 m: J switch(nMonth)
    " z7 U; F* u" @  `# d! ^ {
    7 I8 i4 `; J8 V- K$ }4 A; @ case 2:
    $ J& H; T' {0 ?  if((nYear % 400 == 0) || (nYear % 4 == 0 &amp;&amp; nYear % 100 != 0)) //闰年5 r3 w1 ]+ R, K2 B# ]2 k
      {
    ; n) O$ B3 E2 c% s! h) _   nDay = 29;
    - v5 v8 Q% j, O( H# j' m9 q  }+ w# [0 Q! D; S' s& u7 H" y
      else
    9 i. M+ T. r1 Q4 Q/ x% v( R  {9 w: n1 G4 k5 v; W+ B" ?  M
       nDay = 28;
    / `9 L- |% Y. o/ @  }
    % W7 L) S4 k) P; Y6 ?- h  break;! j$ X+ x' V; u& Z) }$ O5 D
    case 4:case 6:case 9:case 11:; N) o6 x$ m# H* e& E) E, F+ l3 A
      nDay = 30;
    : C8 T, p5 w. p  break;
    / g3 H. k: G0 m" J7 J& T default:, d2 d7 A! o, Z- _% q' h- x' x
      nDay = 31;, ]5 h) a) B4 v8 O5 N- w$ i
      break;4 D" m3 {9 U+ F8 Z9 ~; f4 G( S9 G
    }
    9 O: X# ]3 j, z0 H. E9 O8 @" m CString csNewDate;
    % P- [( F7 d/ F5 g) ?+ B$ M4 s' s) Z csNewDate.Format("%04d%02d%02d", nYear, nMonth, nDay);- C) J  Q* ?3 t2 u- K2 ~. O! I
    return csNewDate;
    1 ^5 r3 I: r5 ^) L9 E9 b( M}
    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    <>那还是要加上天数吧?如果是加上几个月,因为月的天数都不同,怎样区分呢?</P>
    回复

    使用道具 举报

    xShandow        

    43

    主题

    1

    听众

    385

    积分

    升级  28.33%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    不是的,比如说现在是2004年2月29,我加几个月让他变为2005年2月份,由于2005年2月份是28天,那么这多余的一天如何计算,还有每加一个月,如何计算。。比如说。今天是1月31,我加一个月,那么结果又如何算,因为2月最大也就29天。。这个问题很困扰我啊。
    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    回复

    使用道具 举报

    xShandow        

    43

    主题

    1

    听众

    385

    积分

    升级  28.33%

    该用户从未签到

    国际赛参赛者

    新人进步奖

    关键是不能用VCL来作,这样一来,代码不对自己透明了.不知道能不能看到VCL的源码.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-18 04:43 , Processed in 0.485012 second(s), 96 queries .

    回顶部