ABAP中如何得到一個月的最後一天

   在网上看到一篇是关于如何获取给定日期的那个月的最后一天日期,思路很特定,不象我之前写的要判断大小月,还要判断是否是闺年。

實現此問題前,我們先看下大家都明白一個小腦筋急轉彎。“問在一年裡那個月有28天?答案是每個月都有28天”,是呀又不是問那個月可能只有28天,這樣的話答案就是二月了,如此我們對此問題可以借用此筋急轉彎處理,請看下面代碼:

PARAMETERS P_DATUM TYPE SY-DATUM OBLIGATORY.
WRITE:/ P_DATUM.
P_DATUM+6(2) = '28'.
P_DATUM = P_DATUM + 5.
P_DATUM+6(2) = '01'.
P_DATUM  = P_DATUM - 1.
WRITE:/ P_DATUM .

對於參數P_DATUM不管輸入那天的日期,我們都把他的日期改成當月的28(P_DATUM+6(2) = '28'.),上面的筋急轉彎我們知道一定會存在28號的,這個日期就是本月的28,但不一定是本月最後一天,由筋急轉彎我們同樣可知无论那個月都一定會有1號,而1號減1就是上個面的最後一天了,如我們只要把本月28號變成下月就可以了,大家都知道對於一個月1~28是必有的,本月28號到下月1號最多4天,最少1天,28號到下月的28號最多31天,最少28天,所以我們做個交集可以知道,本月的28號加上4~28一定是下個月的1~28號,所以只要把本月28号加上4~28(P_DATUM = P_DATUM + 5.)就在下月了,再把日改成01(P_DATUM+6(2) = '01'.)就是1號了,再減去1(P_DATUM  = P_DATUM - 1.)就成本月的最後一天了。

 

### 回答1: 在ABAP创建一个四则运算的函数,您可以按照以下步骤进行: 1. 创建一个Function Module:在ABAP Workbench的SE37事务,您可以创建一个名为“Z_CALCULATE”的Function Module。 2. 定义输入和输出参数:在Function Module的界面上,您可以为Function Module定义输入和输出参数。在这个例子,您可以定义以下输入和输出参数: * 输入参数: - num1(类型为I,长度为10) - num2(类型为I,长度为10) - operator(类型为C,长度为1) * 输出参数: - result(类型为I,长度为10) 3. 编写ABAP代码:在Function Module的“源代码”选项卡,您可以编写实现四则运算的ABAP代码。在这个例子,您可以使用CASE语句实现不同的运算符。以下是一个简单的示例代码: FUNCTION z_calculate. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(NUM1) TYPE I *" VALUE(NUM2) TYPE I *" VALUE(OPERATOR) TYPE C *" EXPORTING *" VALUE(RESULT) TYPE I *"---------------------------------------------------------------------- CASE operator. WHEN '+'. result = num1 + num2. WHEN '-'. result = num1 - num2. WHEN '*'. result = num1 * num2. WHEN '/'. IF num2 <> 0. result = num1 / num2. ELSE. result = 0. ENDIF. ENDCASE. ENDFUNCTION. 4. 测试Function Module:您可以使用SE37事务测试Function Module。在输入参数输入您想要计算的数字和运算符,然后运行Function Module。在输出参数,您将获得计算结果。 这就是在ABAP创建四则运算函数的简单步骤。 ### 回答2: 在ABAP,可以通过创建一个函数来实现四则运算。以下是一个示例: 首先,我们需要在ABAP编辑器创建一个函数模块。可以通过进入事务码`SE37`进入函数构建器界面。在这个界面,选择创建一个新的函数模块。 接下来,我们需要定义输入和输出参数。对于四则运算函数,我们需要定义四个输入参数(操作数1、操作数2、运算符、结果)以及一个输出参数(结果)。 在“接口/参数”选项卡下,点击“添加”按钮以创建输入参数。为每个输入参数分别指定一个名称、数据元素和描述。例如,对于操作数1和操作数2,可以选择INT4数据元素。 然后,点击“添加”按钮以添加输出参数。指定输出参数的名称、数据元素和描述。对于结果,也可以选择INT4数据元素。 接下来,在“源代码”选项卡下,我们需要编写ABAP代码来执行四则运算。根据输入参数指定的运算符,使用条件语句(如CASE语句)来执行相应的运算。根据运算符的不同,可以使用ABAP提供的数学函数(如ADD、SUBTRACT、MULTIPLY、DIVIDE)来执行相应的运算。将结果分配给输出参数。 最后,保存函数模块,并使用事务码`SE93`来创建一个事务代码,以便在ABAP系统调用该函数模块。 现在,我们可以在ABAP系统的任何地方使用该事务代码来调用四则运算函数。将操作数1、操作数2和运算符作为输入参数传递给函数,然后获取结果参数的值作为计算结果。 通过以上步骤,我们可以在ABAP创建一个四则运算的函数,可以在需要计算的地方方便地调用该函数。 ### 回答3: 在ABAP创建一个四则运算的函数,可以按照以下步骤进行: 1. 首先,使用函数建立一个函数模块。可以使用T-code SE37打开Function Builder。 2. 在Function Builder,选择“创建函数模块”。 3. 将函数模块命名为合适的名称,比如“四则运算”。 4. 在“接口”标签页,定义输入和输出参数。对于四则运算,我们需要定义四个输入参数(两个操作数和一个运算符)和一个输出参数(结果)。 5. 在“源代码”标签页,编写函数逻辑。首先,使用“DATA”语句定义所需的变量。然后,使用“CASE”语句根据运算符执行相应的计算操作,并将结果存储在输出参数。 6. 检查并保存函数模块。 以下是一个示例实现的函数模块的源代码: FUNCTION ZARITHMETIC. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(OP1) TYPE I *" VALUE(OP2) TYPE I *" VALUE(OPERATOR) TYPE C *" EXPORTING *" VALUE(RESULT) TYPE I *"---------------------------------------------------------------------- DATA: LV_RESULT TYPE I. CASE OPERATOR. WHEN '+'. LV_RESULT = OP1 + OP2. WHEN '-'. LV_RESULT = OP1 - OP2. WHEN '*'. LV_RESULT = OP1 * OP2. WHEN '/'. LV_RESULT = OP1 / OP2. WHEN OTHERS. LV_RESULT = 0. ENDCASE. RESULT = LV_RESULT. ENDFUNCTION. 通过以上步骤,我们可以成功创建一个四则运算的函数模块。之后,可以在其他ABAP程序或报表调用该函数,实现四则运算的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值