中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Informix
我自己在informix-4GL下写的几个跟日期有关的函数
作者:未知 时间:2005-09-13 19:04 出处:ChinaUnix.net 责编:chinaitpower
              摘要:我自己在informix-4GL下写的几个跟日期有关的函数

1.
##SYNTAX        CALL s_monbend(p_yy,p_mm)
##              RETURNING l_bdate,l_edate
##DESCRIPTION   讀取該月份所在的之第一天及最後一天
##PARAMETERS    p_yy 年 p_mm 月
##RETURNING             l_bdate  該月之第一天
##                      l_edate  該月之最後一天
# Date & Author..: 04/04/23 by Kerry
 
FUNCTION s_monbend(p_yy,p_mm)
  DEFINE p_yy,p_mm     INTEGER
  DEFINE n_yy,n_mm     INTEGER
  DEFINE l_bdate,l_edate       DATE,
         c_bdate               char(10),
         c_yeare               char(04),
         c_month               char(02)
   
  LET c_yeare=p_yy
  LET c_month=p_mm using '&&'
  LET c_bdate=c_yeare[3,4],c_month,'01'
  LET l_bdate=c_bdate
    LET n_yy=p_yy
  LET n_mm=p_mm+1
  IF n_mm=13 THEN LET n_yy=n_yy+1 LET n_mm=n_mm-12 END IF
  LET l_edate=MDY(n_mm,1,n_yy)-1
    RETURN l_bdate,l_edate
END FUNCTION

2.
##SYNTAX        CALL s_mothck(p_date)
##              RETURNING l_bdate,l_edate
##DESCRIPTION   讀取該日期所在的月份之第一天及最後一天
##PARAMETERS    p_date  日期
##RETURNING     l_bdate  該月之第一天
##              l_edate  該月之最後一天
# Date & Author..: 04/04/23 by Kerry

FUNCTION s_mothck(p_date)
   DEFINE  p_date     DATE,
           p_bdate    DATE,
           p_edate    DATE,
           l_date     DATE,
           b_date     CHAR(08),
           l_tmp      SMALLINT
   
   IF p_date IS NULL OR p_date=' ' THEN
      RETURN '',''
   END IF
   LET b_date=p_date USING "yyyymmdd"
   IF b_date[7,8]<>'01' THEN       LET b_date=b_date[1,4],b_date[5,6],b_date[7,8]*0+1 USING '&&'
   END IF
   LET p_bdate = MDY(b_date[5,6],b_date[7,8],b_date[1,4])    #該月第一天
   #將月份加一, 再將日期減一, 即可得到上月的最後一天
   LET b_date=b_date[1,4],b_date[5,6]+1 USING '&&',b_date[7,8]
   IF b_date[5,6]='13' THEN       LET b_date=b_date[1,4]+1 USING '&&&&',b_date[5,6]*0+1
                  USING '&&',b_date[7,8]
   END IF
   LET l_date = MDY(b_date[5,6],b_date[7,8],b_date[1,4]) #該月之最後一天
   LET p_edate=l_date-1
   RETURN p_bdate,p_edate
END FUNCTION

 czw1413_cn 回复于:2004-10-21 17:54:42


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有