abapで現在日付の21営業日以降の日にある週の金曜日を算出したい
时间: 2023-08-28 10:06:42 浏览: 44
以下は、ABAPで現在日付の21営業日以降の日にある週の金曜日を算出する例です。
```
DATA: lv_date TYPE sy-datum,
lv_weekday TYPE sy-datum.
* 現在日付を取得
lv_date = sy-datum.
* 21営業日後の日付を算出
DO 21 TIMES.
lv_date = lv_date + 1.
IF lv_date+6(2) CP 'SA|SU'.
lv_date = lv_date + (7 - lv_date(2) MOD 7).
ENDIF.
ENDDO.
* 金曜日の日付を算出
IF lv_date+6(2) = 'FR'.
lv_weekday = lv_date+6.
ELSE.
lv_weekday = lv_date + (5 - lv_date(2) MOD 7).
ENDIF.
WRITE: / '21営業日後の週の金曜日は', lv_weekday.
```
この例では、現在日付から21営業日後の日付を求めた後、その週の金曜日を求めています。日付の計算には、DOループを使用しています。また、金曜日の日付を求めるために、MOD関数を使用しています。
相关问题
abap 日元金额编辑逗号
要在 ABAP 中将日元金额的逗号进行编辑,可以使用以下代码:
```
DATA(lv_jpy) = '1,000,000' "日元金额
DATA(lv_edited_jpy) TYPE string.
"将逗号替换为日元符号
lv_edited_jpy = REPLACE( val = lv_jpy sub = ',' with = '¥' ).
WRITE: / '原始日元金额:', lv_jpy,
/ '编辑后的日元金额:', lv_edited_jpy.
```
这段代码将逗号替换为日元符号,从而实现了对日元金额的编辑。
ABAP 根据一个工作日,如何取得这个工作日的周五
可以使用 ABAP 中的日期计算函数来实现。以下是一段示例代码:
```
DATA: lv_date TYPE d,
lv_friday TYPE d.
lv_date = sy-datum. " 假设要获取今天的周五
DO.
lv_date = lv_date + 1.
IF lv_date(3) = '5' AND lv_date(4) = '2'. " 判断是否为周五
lv_friday = lv_date.
EXIT.
ENDIF.
ENDDO.
```
在代码中,我们首先将当前日期赋值给变量 `lv_date`。然后通过一个 DO 循环,每次将 `lv_date` 加 1 天,直到找到一个周五为止。在判断是否为周五时,我们使用了字符串截取函数 `lv_date(3)` 和 `lv_date(4)`,分别表示日期字符串中的第三位和第四位,即月份中的日期数字。当这两位数字分别为 5 和 2 时,就表示这是一个周五。最后找到周五后,将其赋值给变量 `lv_friday`。