计算第N个月的第一天和最后一天

2020-08-21 22:50发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们如何计算第N个月的第一天和最后一天?

" N"可能是上个月或两个月前或三个月后。

示例-

今天是2014年4月28日

我需要2月1日(回溯两个月)-2014/2/1和

我需要2月的最后一天(也是两个月前)-2014/2/28

类似地,有时我需要上个月的第一天-2014年3月1日

上个月的最后一天-2014年3月31日。

感谢您的帮助。

谢谢

周杰伦

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们如何计算第N个月的第一天和最后一天?

" N"可能是上个月或两个月前或三个月后。

示例-

今天是2014年4月28日

我需要2月1日(回溯两个月)-2014/2/1和

我需要2月的最后一天(也是两个月前)-2014/2/28

类似地,有时我需要上个月的第一天-2014年3月1日

上个月的最后一天-2014年3月31日。

感谢您的帮助。

谢谢

周杰伦

付费偷看设置
发送
5条回答
一只江湖小虾
1楼-- · 2020-08-21 23:31

这实际上并不难。 假设您有一个参数来获取月数,则需要使用几个变量来使所有数据保持直线:

每月第一天:(获取请求的月份的月份和年份,以及 使用它们来获取该月第一天的日期)

DateVar checkDate = DateAdd(" m",(-1 * {?Months Back}),CurrentDate);

NumberVar chkMonth =月(checkDate);

NumberVar chkYear =年(checkDate);

Date(hkYear,chkMonth,1)

月末:( 转到下个月的第一天并减去1)

DateVar checkDate = DateAdd(" m",(-1 * {?Months Back}),CurrentDate);

DateVar nextDate = DateAdd(" m",1,checkDate);

nextDate-1

-Dell

愤怒的猪头君
2楼-- · 2020-08-21 23:15

实际上,珍妮特(Janet),最初计算checkDate的公式是通过使用DateAdd减去月份来实现的。 然后,年值反映了几个月前{?MonthsBack}的月份。

此外,我有点怀疑您为什么要评论大约6年前的答案。 ...

-戴尔

Aaron 3364
3楼-- · 2020-08-21 23:38

嗨杰伊,

您也可以尝试:

本月初

日期(年(当前日期),月(当前日期)-2、01)

过去一个月

numberVar m:=如果Month(Datefield)= 12

然后是其他1个月(当前日期)+1;

numberVar y:=如果m = 1则

y:=年(当前日期)+ 1

其他年份(当前日期);

日期(y,m,01)-1

-谢谢,

Nrupal

Nir深蓝
4楼-- · 2020-08-21 23:29

Nrupal,

第一个公式的逻辑中有一个错误-它没有考虑年份边界。 因此,如果今天的日期是2月,则减去2个月将使月份0产生错误。

-Dell

N-Moskvin
5楼-- · 2020-08-21 23:25

尝试使用DateSerial

DateSerial(Year(d),Month(d)+1,1-1),其中d = today表示当前月份的最后一天。

一周热门 更多>