Abap 打印带有系统日期的季节练习(sy基准)

Abap 打印带有系统日期的季节练习(sy基准),abap,Abap,我需要写一个程序,它采用系统日期(sy数据)&显示未来8年的季节 写下:'当前季节是',季节 您可以在日期的基础上增加三个月,然后打印季节& 日期。到2020年底时停止循环。 注意:需要使用ABAP我当然假设您的系统具有ISP_MONTHS_to_DATE功能模块,如果不是这种情况,您应该在SE37中搜索*month*,有大量用于将月份添加到日期的功能模块(如果您自己尝试这样做,您将有bug) function builder中有许多功能模块可用于在日期中添加月份并返回新日期。使用它们确定日期,

我需要写一个程序,它采用系统日期(sy数据)&显示未来8年的季节

写下:'当前季节是',季节 您可以在日期的基础上增加三个月,然后打印季节& 日期。到2020年底时停止循环。
注意:需要使用ABAP我当然假设您的系统具有ISP_MONTHS_to_DATE功能模块,如果不是这种情况,您应该在SE37中搜索*month*,有大量用于将月份添加到日期的功能模块(如果您自己尝试这样做,您将有bug)


function builder中有许多功能模块可用于在日期中添加月份并返回新日期。使用它们确定日期,然后使用另一个函数计算当前月份。比较它们以确定季节,从而解决问题。

我认为
CL\u RECA\u date
是您的赚钱工具寻找。看看这个例子

DATA: l_date   TYPE sydatum,
      l_season TYPE string.

l_date = sy-datum.

WHILE l_date(4) <= 2020.
  WRITE /: 'The current season is'.

  CASE l_date+4(2).
    WHEN 1 or 2 or 12.  l_season = 'Spring'(001).
    WHEN 3 or 4 or 5.   l_season = 'Summer'(002).
    WHEN 6 or 7 or 8.   l_season = 'Fall'(003).
    WHEN 9 or 10 or 11. l_season = 'Winter'(004).
  ENDCASE.

  WRITE: l_season, l_date.

  l_date = cl_reca_date=>add_months_to_date( id_date   = l_date
                                             id_months = 3 ).
ENDWHILE.
数据:l_日期类型sydatum,
l_季节类型字符串。
l_日期=sy基准。
而l_日期(4)则在l_日期(id_日期=l_日期)上添加月
id_月=3)。
结束时。

如果需要,可以通过
案例
声明来获得赛季。上面的示例假设12月-2月是冬季,如果您有不同的需求,您可能需要修改它。对于季节的天文定义,你可以用
IF…ELSEIF

解析
l_date+4
,你尝试了什么,以及你在实现它时遇到了什么具体问题?这个问题似乎是离题的,因为它似乎是在要求某人为他们做工作。不显示任何先前的工作或代码问题。(为什么他们从主题外结束时删除了这个选项?)季节取决于你居住的半球的部分,因此
get_seash
程序应该以某种方式得到加强。Rana David必须自己解决这个问题以获得额外的积分;)此外,它不支持除英语以外的其他语言:)可能使用可以翻译的消息而不是字符串。这样更“企业化”。
DATA: l_date   TYPE sydatum,
      l_season TYPE string.

l_date = sy-datum.

WHILE l_date(4) <= 2020.
  WRITE /: 'The current season is'.

  CASE l_date+4(2).
    WHEN 1 or 2 or 12.  l_season = 'Spring'(001).
    WHEN 3 or 4 or 5.   l_season = 'Summer'(002).
    WHEN 6 or 7 or 8.   l_season = 'Fall'(003).
    WHEN 9 or 10 or 11. l_season = 'Winter'(004).
  ENDCASE.

  WRITE: l_season, l_date.

  l_date = cl_reca_date=>add_months_to_date( id_date   = l_date
                                             id_months = 3 ).
ENDWHILE.