正邦巨亏的原因找到了!金币求助一段代码~~



4月21日正邦公布重整延期,短线最大的退市风险解除,那几天加班加昏了头,楼主看了公告,几分钟之内就决定买入,一早红盘买入,然后被杀的稀里哗啦。。。
原来,买入时完全忘了即将公布年报,然后披星戴月。。。

为啥会忘呢,因为最近工作太忙,尤其是一个浪Chao软件开发的一个项目尤其恼人!浪C软件的码农简直让我哭笑不得,很多很简单的东西居然都搞不定,有时候真把我气的笑了。。。

举个简单的例子,设备定期检测,检测合格要刷新有效期,公式是:
有效日期=检测日期+检测周期(月)-1天;
例如今天2023-4-29检测,检测周期是12个月,则有效日期=检测日期+12个月-1天=2024-04-28;
检测周期有6个月、12个月、24个月、60个月不等。
逻辑很清楚吧。
且看浪C软件的码农是怎么干的。。。

回合一:
浪C软件的码农写完代码,我一测试,发现有效日期跟理论值差了五六天的样子,就问他是怎么计算的,他说是将检测周期(月)乘以30,加上检测日期再减一天,就得到了有效日期,我说这样肯定不对啊,这样一年只有360天了,差了好几天!
我说在excel中很简单啊,直接加月份就可以了。
浪C软件的码农答曰,在浪C的软件中没有封装类似的功能,不能直接调用,只能自己写代码。
那就只好让他再改下。

回合二:
浪C软件的码农改完代码,这次我学乖了,我先问他,是怎么计算的,他说是用检测周期(月)除以12,再乘以365,加上检测日期,就得到了有效日期。我说这样遇到闰年肯定就有问题啊,一年366天,有效日期就差了一天,而且没有办法修改,肯定不行啊!

回合三:
回合二不是差了一天没有办法修改嘛,这次浪C软件的码农学乖了,直接用检测日期+检测周期(天)-1天,检测周期(天)-1天设置默认值,检测周期如果是一年,那默认值就设置为365-1=364天。如果闰年怎么办,那就需要手动修改为365;到了闰年的第二年,又需要将365改回364。如果检测周期如果是6个月,由于需要考虑闰年,备选值就有180/181/182/183/184。。。

我彻底崩溃了。。。浪C软件这么大的公司,做的软件怎么这么水!!!
由于没有想到好的解决思路,这个问题目前暂时放一边了,但是如果后续如果没有好的办法,很可能就这样了。

五一外面人太多,加上最近比较忙,我没有出去玩,先休息下。
抽空又想了一下这个问题,由于闰年的影响,还有周期6个月的起始时间要受到大月31天、小月30天的影响,貌似确实还挺复杂的。

不过这应该是个会经常遇到的问题,只好请教下各位高手,有没有好的算法或者代码,如果能够提供有效信息的金币答谢,如果能够完美解决的话,大量金币答谢。
先行谢过了~~
发表时间 2023-04-29 10:58     来自四川

赞同来自: eeoo 海之央 qwsd54362627 Klaus199008

2

慕容燕

赞同来自: seancai110 dingo49

C语言中对这种计算是比较麻烦,所以很多公司会对这些规则做自己的加工,做好通用函数。如果通用的函数没人写好,有个变通的方式,就是如果连数据库了,可以直接调用数据库的add_months函数,不需要自己去计算闰年这些,相对比较简单。
2023-05-06 07:03 来自香港 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2023-12-22 12:36
  • 浏览: 12302
  • 关注: 47