如何取某日的周几,月周,年周(转换例程)

原创 2015年11月17日 19:32:03

周几

 DATAdiw_first TYPE VALUE '19790101'.
  RESULT SOURCE_FIELDS-/BIC/ZBUSDE diw_first MOD 1.


月周

=====

FM 

ZGET_WEEK_INFO_BASED_ON_DATE

参考 ECC中的

GET_WEEK_INFO_BASED_ON_DATE

因为BW中没有这个FM

=====

FM:

import: date

export: ZWEEK_MON  type /BIC/OIZWEEK_MON( numc 2)

ZWEEK_YEAR type  /BIC/OIZWEEK_YER   (numc 2)





FUNCTION ZGET_MONTH_WEEK.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(DATE) TYPE  SY-DATUM DEFAULT SY-DATUM
*"  EXPORTING
*"     REFERENCE(ZWEEK_MON) TYPE  /BIC/OIZWEEK_MON
*"     REFERENCE(ZWEEK_YEAR) TYPE  /BIC/OIZWEEK_YER
*"----------------------------------------------------------------------
DATA:
  ZFLAG TYPE /BIC/OIZFLAG,
  p_date1 type sy-datum,
  p_date2 type sy-datum,
  p_date3 type sy-datum,
  P_DATE5 TYPE SY-DATUM,
  P_DATE6 TYPE SY-DATUM,
  P_DATE7 TYPE SY-DATUM,
  P_DATE8 TYPE SY-DATUM,
  L_DATE TYPE SY-DATUM,
  L_DATE1 TYPE SY-DATUM,
  current_week type scal-week,
  current_week1 type scal-week,
  previous_week type scal-week.

  p_date3 DATE.
  CALL FUNCTION  'ZGET_WEEK_INFO_BASED_ON_DATE'
  EXPORTING
  date =  p_date3
  IMPORTING
  week current_week
  monday p_date1
  sunday p_date2.
ZWEEK_YEAR current_week+4(2).
* 输入日期的年周,周一与周日。

"判断1日是否跨月
* CONCATENATE p_date3+0(6) '01' INTO L_DATE1.
*  CALL FUNCTION  'ZGET_WEEK_INFO_BASED_ON_DATE'
*  EXPORTING
*  date = L_DATE1
*  IMPORTING
*  week = CURRENT_WEEK1
*  monday = p_date7
*  sunday = p_date8.
*  IF P_DATE7+4(2) <> P_DATE3+4(2). "1日跨月
*    ZFLAG = 'X'.
*  ELSE.
*    ZFLAG = 'Y'.
*  ENDIF.

  If p_date1+4(2<> p_date2+4(2)."如果跨月
    IF DATE+4(2P_DATE2+4(2)"如果输入日期与星期日同月(某月最前几天)
  ZWEEK_MON 1.
     ELSEIF P_DATE3+4(2P_DATE1+4(2)."如果输入日期与星期一同月(某月最后几天)
       p_date3 p_date3 7.
       CALL FUNCTION 'ZGET_WEEK_INFO_BASED_ON_DATE'
  EXPORTING
  date =  p_date3
  IMPORTING
  week current_week1
  monday p_date5
  sunday p_date6."取出上周的周一和周日
 L_date p_date3.
       WHILE p_date6+4(2L_DATE+4(2).

       CALL FUNCTION  'ZGET_WEEK_INFO_BASED_ON_DATE'
  EXPORTING
  date p_date3
  IMPORTING
  week previous_week
  monday p_date5
  sunday p_date6.
  P_DATE3 P_DATE3 7.
  ENDWHILE.
IF CURRENT_WEEK+0(4> PREVIOUS_WEEK+0(4)"如果跨年
    CONCATENATE CURRENT_WEEK+0(4'01' INTO PREVIOUS_WEEK.
    ZWEEK_MON CURRENT_WEEK PREVIOUS_WEEK + 1.
  ELSE.
  ZWEEK_MON current_week previous_week.
  ENDIF.
 ENDIF.


  ELSE."如果不跨月
    L_DATE P_DATE3.
  WHILE p_date2+4(2L_DATE+4(2)"只要周日月份等于输入日月份
  p_date3 p_date3 7.
  CALL FUNCTION  'ZGET_WEEK_INFO_BASED_ON_DATE'
  EXPORTING
  date p_date3
  IMPORTING
  week previous_week
  monday p_date1
  sunday p_date2.
  ENDWHILE.
  IF CURRENT_WEEK+0(4> PREVIOUS_WEEK+0(4)"如果跨年
    CONCATENATE CURRENT_WEEK+0(4'01' INTO PREVIOUS_WEEK.
    ZWEEK_MON CURRENT_WEEK PREVIOUS_WEEK + 2.
  ELSE.
  ZWEEK_MON current_week previous_week."不跨年,不跨月
  ENDIF.
  ENDIF.







ENDFUNCTION.

版权声明:本文为博主原创文章,未经博主允许不得转载。

sql 取得今天是周几的方法

SELECT DATENAME(weekday,GETDATE()) select day(GETDATE()) select @@datefirst set datef...
  • li1101585183
  • li1101585183
  • 2014年01月16日 22:21
  • 878

SQL按日、周、月、年统计

1、按日统计:
  • vaecnfeilong
  • vaecnfeilong
  • 2014年06月20日 17:05
  • 1192

android 计算所在周所在月的前后日期

效果图: 使用了 一个时间相关的工具类   package com.yqy.yqy_date; import android.util.Log; import java.text.Da...
  • u012885461
  • u012885461
  • 2015年06月11日 15:28
  • 1384

mysql查询r日期周 7天 季度 年 统计表数据神器

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW...
  • xiao_xiao_meng
  • xiao_xiao_meng
  • 2017年06月23日 20:17
  • 208

如何快速计算出星期几

有的时候需要根据日期快速计算出星期几来,我从网上搜索到一个口诀,验证了几个日期,发现还是靠谱的,这个公式的证明目前我还不会,但可以保证2000-2099的星期计算是靠谱的,其他时间我没有验证过。 ...
  • yunjie167
  • yunjie167
  • 2017年03月29日 15:57
  • 357

自动加载下拉列表年、月、周

public class Utils { /** * 得到下拉的年份 * * @return */ public static Map getSelectYear() { ...
  • weber0000
  • weber0000
  • 2016年09月21日 15:40
  • 291

C#里获取相关日期 例如做报表时某段时间(如本年度、本季度、本月、本周、上周等)

//大家在做报表或查询的时候都会有给用户预设一些可选的日期范围(如上图) //如本年度销售额、本季度利润、本月新增客户 //C#里内置的DateTime基本上都可以...
  • smartsmile2012
  • smartsmile2012
  • 2012年11月08日 09:46
  • 2375

PHP 获取日期所在自然周和自然月的方法

  • wh531030320
  • wh531030320
  • 2015年06月25日 17:56
  • 2028

sql 周转换为日期自定义函数

SQL中,将周期转换为日期,取当周第一天的日期,格式:dbo.get_WeekToDate(Week,WeekFormat) CREATE Function [dbo].[get_WeekToD...
  • tesily
  • tesily
  • 2017年09月21日 15:13
  • 227

oracle 判断今天是星期几

有人问怎么判断今天是星期几? select to_char(sysdate,'d') from dual     很显然这句并不能完成要求的功能,因为这只是显示当前为本星期的第几天,而老外把星期天...
  • myflysun
  • myflysun
  • 2012年05月31日 20:53
  • 23414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何取某日的周几,月周,年周(转换例程)
举报原因:
原因补充:

(最多只允许输入30个字)