下个交易日的日期比较困难,要考虑周末\节假日\闰年等因素.
暂时尚无好的办法,还是人脑自动算的好.
你就判断今天这个交易日 不就可以判断出下个了么
那就是要考虑WEEKDAY--该周期做在的星期数
和当天是哪一月的哪一天了.
1.如果WEEKDAY是1到4的值,说明是周一到周四,下一交易日加1就行,注意如果是月末,下一交易日其实是个赋值过程,即年不变,月增1,日为1.
2.如果WEEKDAY是5,说明是周五,下一交易日加3,也要考虑月末的情况.
对,就是这个思路,但是不知道怎么用函数表示。还有,平年闰年怎么表示,因为二月份比较特殊
第一类:1、3、5、7、8、10、12月
第二类:4、6、9、11月
第三类:2月,又分为平年、闰年
闰年判断方法:
1.能被400整除的年份;
2.能被4整除但同时不能被100整除的年份。
满足上述两个条件之一的即为闰年。
用指标写出来就是
CON:=year%400=0 or (year%4=0 and not(year%100)=1);//满足这个条件的就是闰年
您可以尝试着自己写一下,用到的就是YEAR,MONTH,WEEKDAY等函数
我是觉得这样写出来,也没什么意义,因为没包括节假日,最终的结果,还是判定不了,下一个交易日
如果更详细一下,就是按照下面的写法就可以判断出哪一月有多少天.
您如果觉得这样写出来也还是有意义的.
剩下的,您尝试着自己补充吧.
con:=year%400=0 or (year%4=0 and not(year%100)=1);
if month=1 or month=3 or month=5 or month=7 or month=8 or month=10 or month=12 then daym:=31;//31天的月份
if month=4 or month=6 or month=9 or month=11 then daym:=30;//30天的月份
if con=1 and month=2 then daym:=29;//29天的月份
if con=0 and month=2 then daym:=28;//28天的月份
这样写的
大月:=MONTH=1 OR MONTH=3 OR MONTH=5 OR MONTH=7 OR MONTH=8 OR MONTH=10 OR MONTH=12;
小月:=MONTH=4 OR MONTH=6 OR MONTH=9 OR MONTH=11;
二月闰:=year%400=0 or (year%4=0 and not(year%100)=1);
当月天数:=if(大月,31,if(小月,30,if(二月闰,29,28)));
毛日期:=IF(WEEKDAY=5,DATE+3-1000000+20000000,DATE+1-1000000+20000000);
月末日期:=year*10000+MONTH*100+当月天数;
余数:=毛日期-月末日期;
日期:if(余数>0,year*10000+(MONTH+1)*100+余数,毛日期),LINETHICK0,PRECISION0;