Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7203344
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2009-06-22 15:38:43

作用:输入年度+财务周,返回这个财务周的周一的日期。
如:输入200903 返回 20090413
 
假定:每年4月的第一个周六即为本年度第一财务周的周六
 
FUNCTION z_get_fiscal_week_info.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IN_WEEK) TYPE  SCAL-WEEK
*"  EXPORTING
*"     REFERENCE(OUT_DATE) TYPE  SY-DATUM
*"  EXCEPTIONS
*"      ERROR
*"----------------------------------------------------------------------
  DATA: next_year_mon TYPE d.
 
  PERFORM get_mon USING in_week+0(4) CHANGING out_date .
  out_date = out_date + ( in_week+4(2) * 7 ) - 7 .
 
  next_year_mon+0(4) = in_week+0(4) + 1 .
  PERFORM get_mon USING next_year_mon+0(4) CHANGING next_year_mon .
  IF out_date >= next_year_mon .
    CLEAR out_date .
    RAISE Error.
  ENDIF.
ENDFUNCTION.
 
*&---------------------------------------------------------------------*
*&      Form  get_mon
*&---------------------------------------------------------------------*
FORM get_mon USING year CHANGING mon_date .
  DATA: tmpdate TYPE d ,
        tmpweek TYPE p .
  tmpdate+0(4) = year .
  tmpdate+4(4) = '0401'.
  CALL FUNCTION 'DAY_IN_WEEK'
    EXPORTING
      datum = tmpdate
    IMPORTING
      wotnr = tmpweek.
  IF tmpweek <= 6.
    tmpdate = tmpdate + 6 - tmpweek .
  ELSE.
    tmpdate = tmpdate + 6 .
  ENDIF.
  mon_date = tmpdate - 5 .
ENDFORM.                    "get_mon
阅读(3108) | 评论(0) | 转发(0) |
0

上一篇:MD5的ABAP实现

下一篇:翻转字符串

给主人留下些什么吧!~~