2020-08-23 13:02发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我需要找到给定日期的最近的星期四... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我需要找到给定日期的最近的星期四。 有没有可用的功能模块?...
例如:如果给定日期为星期六的15/02/2020,则应将日期返回为最近的星期四13/02/2020。
如果给定的日期是星期二的18/02/2020,则应返回最近的星期四的20/02/2020。
1 。 使用FM DAY_IN_WEEK获取给定日期的星期几(1-7)。
2。 计算从今天到下一个星期四的天数差:从今天开始减去星期四(4)(例如2 =星期二或7 =星期日)。 如果大于0,则这是到星期四的天数。 如果它小于零,则需要在负数上加上"一周",即7天,以获取下周的星期四。 如果为零,则需要确定是星期四还是下周四,具体取决于"截断"时间。但是,您也可以直接在循环中直接使用下一个FM,始终添加1天 直到您打了星期四(除非已经是星期四并且您可以使用它;)
3。 使用FM RP_CALC_DATE_IN_INTERVAL计算给定日期以及到下一个星期四的天数之差,并得到结果日期
更新:
当然可以将上述伪代码"更改"为 符合您的"新"要求。 那是一个变更请求;)。 如果给定的日期已经是给定的工作日,则下一个实际的编码(抱歉,我没有对其进行测试)将为您提供以下(!)或与最近日期相同的日期。 如果一定是下一个工作日,则需要在第一次计算lv_current_weekday之前先将1添加到ev_nearest_date。 我正在等待下一个更改请求。... 所以您去了:
"输入/输出参数 数据:iv_given_date TYPE系统数据VALUE系统数据, iv_given_weekday TYPE int4 VALUE'4', ev_nearest_date TYPE数据表。 变量 常量:lc_known_monday TYPE sydatum VALUE'19000101'。 数据:lv_current_weekday TYPE int4。 算法 ev_nearest_date = iv_given_date。 lv_current_weekday =(ev_nearest_date-lc_known_monday)mod 7 + 1。 lv_current_weekday <> iv_given_weekday。 将1加到ev_nearest_date。 lv_current_weekday =(ev_nearest_date-lc_known_monday)mod 7 + 1。 结束。
但是根据您的新示例,您再次想要其他东西。 所以应该是同一周内最近的一天??? 您需要提供一个完整的示例,说明用户何时结束和开始一周,以及一周的开始和结束的"最近"日期。
最多设置5个标签!
1 。 使用FM DAY_IN_WEEK获取给定日期的星期几(1-7)。
2。 计算从今天到下一个星期四的天数差:从今天开始减去星期四(4)(例如2 =星期二或7 =星期日)。 如果大于0,则这是到星期四的天数。 如果它小于零,则需要在负数上加上"一周",即7天,以获取下周的星期四。 如果为零,则需要确定是星期四还是下周四,具体取决于"截断"时间。
但是,您也可以直接在循环中直接使用下一个FM,始终添加1天 直到您打了星期四(除非已经是星期四并且您可以使用它;)
3。 使用FM RP_CALC_DATE_IN_INTERVAL计算给定日期以及到下一个星期四的天数之差,并得到结果日期
更新:
当然可以将上述伪代码"更改"为 符合您的"新"要求。 那是一个变更请求;)。 如果给定的日期已经是给定的工作日,则下一个实际的编码(抱歉,我没有对其进行测试)将为您提供以下(!)或与最近日期相同的日期。 如果一定是下一个工作日,则需要在第一次计算lv_current_weekday之前先将1添加到ev_nearest_date。 我正在等待下一个更改请求。...
所以您去了:
但是根据您的新示例,您再次想要其他东西。
所以应该是同一周内最近的一天??? 您需要提供一个完整的示例,说明用户何时结束和开始一周,以及一周的开始和结束的"最近"日期。
一周热门 更多>