关于日期天数计算的几个函数!

原创 2004年07月31日 15:30:00
关于日期天数计算的几个函数!

今天早上突然要用到一个计算某月有多少天的函数,翻了半天没找到系统自带着中函数,于是动手写了一个,如下:

**返回某个月有多少天
FUNCTION HowMonthDay()
   PARAMETERS cDate
   LOCAL Days as Integer ,Years as Integer
   IF !TYPE("cDate")=="D"
      MESSAGEBOX("参数类型不正确,应该为日期型","系统提示!")
      RETURN
   ENDIF    
   Days=IIF(INLIST(MONTH(cDate),1,3,5,7,8,10,12),31,30)
   **闰年计算方法
   Years=YEAR(cDate)
   IF MONTH(cDate)==2
      Days = IIF(Years%400==0 OR (Years%4==0 AND Years%100<>0),29,28)
   ENDIF
   RETURN Days
ENDFUNC  

后来郑宇大哥给我提供了一个返回月底的函数。如下:

PROCEDURE EDOM
* FUNCTION: 返回本月月底
* M.L.Y 1998.8.8
PARAMETERS DATE_TODAY
PRIVATE ALL
SET DATE TO ANSI
SET CENTURY ON
IF MONTH(DATE_TODAY) < 12
    RETURN CTOD(STR(YEAR(DATE_TODAY),4,0) + "." ;
              + STR(MONTH(DATE_TODAY)+1,2,0) + ".01") - 1
ELSE
    RETURN EDOY(DATE_TODAY)
ENDIF

思量了半天发现返回月底可能还要简单一点,我改进了一下:

cDate=Date()

??cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate)))

最后用这个思路改进了一下返回某月有多少天的函数,如下:

FUNCTION HowMonthDay()
   PARAMETERS cDate
   LOCAL Days as Integer
   IF !TYPE("cDate")=="D"
      MESSAGEBOX("参数类型不正确,应该为日期型","系统提示!")
      RETURN
   ENDIF    
   Days=DAY(cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate))))
   RETURN Days
ENDFUNC  

其实最重要的只有一句:Days=DAY(cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate))))
也不用管闰年平年了,省事。

要是返回月底,那这句改为:cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate))) 即可

原理就是根据增加值来计算当月的下一个月超出几天,然后减去几天就是当月的最后一天了。

c语言计算一个日期的下一天后N天后的日期

http://blog.sina.com.cn/s/blog_6be3556a0101g87u.html 方法一: ------------------------------...
  • tcm455090672
  • tcm455090672
  • 2015年06月16日 13:50
  • 1946

C/C++复习:计算该日是该年的第几天(结构体)

/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年4月...
  • Asleny
  • Asleny
  • 2016年04月22日 17:55
  • 1321

Oracle日期周详解以及周开始结束时间计算

本文描述ORACLE中周的相关知识点:与周相关的函数以及格式化周所使用的格式字符串。提供了根据跟定时间取周的开始时间和结束时间的方法,以及根据周次取周的开始时间和结束时间:分为自然周(周一到周日),O...
  • liangweiwei130
  • liangweiwei130
  • 2014年07月18日 15:35
  • 21879

Java函数2:计算两个日期相差的天数

import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Sca...
  • morixinguan
  • morixinguan
  • 2016年08月17日 12:37
  • 1023

通用类:计算两个日期时间之间的总天数

  • 2017年12月21日 15:40
  • 2KB
  • 下载

计算连个日期时间差的天数(已经写好的动态库,可直接使用)

  • 2017年08月24日 15:11
  • 163KB
  • 下载

进行日期时间转换和计算的几个Shell小函数

当你遇到一个date命令不给力的系统时,可以试试这几个小函数。 #日期转天数     function date2days {         echo "$*" | awk '...
  • xuweilinjijis
  • xuweilinjijis
  • 2013年04月27日 11:38
  • 552

日期天数计算

  • 2014年12月03日 14:24
  • 881KB
  • 下载

VB 输入日期计算该日至今的天数

  • 2014年01月21日 10:23
  • 2KB
  • 下载

matlab版计算任意两个日期相隔的天数

  • 2017年11月08日 15:31
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于日期天数计算的几个函数!
举报原因:
原因补充:

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