zoukankan      html  css  js  c++  java
  • 在AS/400上根据日期生成星期几

    用CONTROL LANGUAGE实现:根据给定的日期生成星期几。
    解答 源代码如下:
    程序名:WEEK2
    类型:CLP

    PGM (&Date)

    DCL --&Date ------*Char -10
    DCL --&LDateB ----*Char --4 --/* Binary */
    DCL --&LDateN ----*Dec --15 0 /* Decimal*/
    DCL --&DAYARRAY --*CHAR -63 +
    ------- --('Sunday Monday Tuesday +
    ------- --WednesdayThursday Friday Saturday ')
    DCL --&IndexB ----*Char --4 --/* Binary */
    DCL --&IndexN ----*Dec --15 0 /* Decimal*/
    DCL --&Start -- --*Dec --15 0 /* Decimal*/
    DCL --&DayOfWeek -*Char --9
    DCL --&Msg -------*Char 100

    DCL --&msgid -----*CHAR 7
    DCL --&msgf ------*CHAR 10
    DCL --&msgflib -- *CHAR 10
    DCL --&msgdta ----*CHAR 100

    MONMSG -CEE0000 -EXEC(GOTO ERROR)
    MONMSG -CPF0000 -EXEC(GOTO ERROR)

    CALLPRC 'CEEDAYS' (&Date ------+
    ------------------'MM/DD/YYYY' +
    ------------------&LDateB -----+
    ------------------*OMIT)

    CALLPRC 'CEEDYWK' (&LDateB +
    ------------------&IndexB -+
    ------------------*OMIT)

    CHGVAR &IndexN ---%BIN(&IndexB)
    CHGVAR &Start ----(&IndexN * 9 - 8)
    CHGVAR &DayOfWeek %SST(&DayArray &Start 9)

    SNDPGMMSG MSG(&DATE > 'Falls on' > &DAYOFWEEK < +
    ------------'.') TOPGMQ(*PRV *PGMBDY)

    Return

    /* Error processing routine ------------*/

    ERROR: RCVMSG MSGTYPE(*LAST) -------- +
    --------------MSGDTA(&msgdta) ------- +
    --------------MSGID(&msgid) ---- ---- +
    --------------MSGF(&msgf) ----------- +
    --------------SNDMSGFLIB(&msgflib)
    ----/* Prevent loop, just in case */
    -------MONMSG ----CPF0000
    ------ SNDPGMMSG -MSGID(&msgid) -- -- +
    ------------------MSGF(&msgflib/&msgf)+
    ------------------MSGDTA(&msgdta) ----+
    ------------------MSGTYPE(*ESCAPE)
    ----/* Prevent loop, just in case */
    -------MONMSG CPF0000

    ------ ENDPGM

    执行结果:
    CALL WEEK2 '09/05/2003'

    09/05/2003 Falls on FRIDAY.

  • 相关阅读:
    1130
    Oracle 数据库常用操作语句大全
    Oracle用sys登陆报:ORA-28009:connection as sys should be as sysdba
    导出数据报ORA-39002: 操作无效 ORA-39070: 无法打开日志文件。 ORA-39087: 目录名 DUMP_DIR 无效
    SGI STL源码stl_bvector.h分析
    SGI STL源码stl_vector.h分析
    CGI 萃取技术 __type_traits
    迭代器iterator和traits编程技法
    智能指针分析及auto_ptr源码
    C++深拷贝和浅拷贝细节理解
  • 原文地址:https://www.cnblogs.com/wildfish/p/1031857.html
Copyright © 2011-2022 走看看