CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于计算两日期间相差天数的问题

楼主johnny1983()2006-03-17 20:26:44 在 .NET技术 / ASP.NET 提问

我现在有两个日期,怎样计算出两日期间相差天数?如果我要算两日期间的工作日(既除了周六周日)天数又是怎样计算的,请教高手! 问题点数:20、回复次数:5Top

1 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 20:44:38 得分 5

asp之日期和时间函数示例    
     
  asp之日期和时间函数示例    
   
  可以使用日期和时间函数来得到各种格式的日期和时间    
   
  函数   语法   说明   示例    
  Now   Now()   取得系统当前的日期和时间   Dim   MyVar   MyVar   =   Now    
  ''   MyVar   包含当前的日期和时间。    
  Date   Date()   取得系统当前的日期   Dim   MyDate   MyDate   =   Date    
  ''   MyDate   包含当前系统日期。    
  Time   Time()   取得系统当前的时间   Dim   MyTime   MyTime   =   Time    
  ''   返回当前系统时间。    
  Year   Year(Date)   取得给定日期的年份   Dim   MyDate,   MyYear    
  MyDate   =   #October   19,   1962#    
  ''分派一日期。    
  MyYear   =   Year(MyDate)    
  ''   MyYear   包含   1962。    
  Month   Month(Date)   取得给定日期的月份   Dim   MyVar   MyVar   =   Month(Now)    
  ''   MyVar包含当前月对应的数字。    
  Day   Day(Date)   取得给定日期是几号   Dim   MyDay   MyDay   =   Day("October   19,   1962")    
  ''MyDay包含   19。    
  Hour   Hour(time)   取得给定时间是第几小时   Dim   MyTime,   MyHour    
  MyTime   =   Now   MyHour   =   Hour(MyTime)    
  ''   MyHour   包含代表当前时间的数值。    
  Minute   Minute(time)   取得给定时间是第几分钟   Dim   MyVar    
  MyVar   =   Minute(Now)    
  Second   Second(time)   取得给守时间是第几秒   Dim   MySec    
  MySec   =   Second(Now)    
  ''MySec   包含代表当前秒的数字。    
  WeekDay   WeekDay(Date)   取得给定日期是星期几的整数,1表示星期日,2表示星期一,依此类推   Dim   MyDate,   MyWeekDay    
  MyDate   =   #October   19,   1962#    
  ''   分派日期    
  MyWeekDay   =   Weekday(MyDate)    
  ''   MyWeekDay   包含   6,MyDate   代表星期五    
  DateDiff   DateDiff("Var",Var1,Var2)    
  Var:日期或时间间隔因子,有如下参数:    
  yyyy   年   m月   d   日   ww星期   h小时   s秒    
   
  Var1:第一个日期或时间    
  Var2:第二个日期或时间,比Var1晚   计算两个日期或时间的间隔   DateDiff("d",Date(),#1/1/2005#)    
  ''返回离2005元旦还有多少    
  DateDiff("h",Date(),#1/1/2005#)    
  ''返回离2005元旦还有多少小时    
  DateDiff("d",#1/1/2003#,#1/1/2005#)    
  ''返回两个日期之间的天数    
  DateAdd   DateDiff("Var",Var1,Var2)    
  Var:日期或时间间隔因子:    
  Var1:日期或时间间隔倍数    
  Var2:日期或时间的基准   对两个日期或时间作加法   如下示例将   95   年   1   月   31   日加上一个月:    
   
  NewDate   =   DateAdd("m",   1,   "31-Jan-95")    
  在这个示例中,DateAdd   返回   95   年   2   月   28   日,而不是   95   年   2   月   31   日。如果   date   为   96   年   1   月   31   日,则返回   96   年   2   月   29   日,这是因为   1996   是闰年。    
   
  如果计算的日期是在公元   100   年之前,则会产生错误。    
   
  FormatDateTime   FormatDateTime(Date,vbShortDate)   转化为短日期格式   FromatDateTime(Date(),vbLongDate)    
  "以长日期格式显示    
  FormatDateTime(Date,vbLongDate)   转化为长日期格式    
  FormatDateTime(Date,vbShortTime)   转化为短时间格式    
  FormatDateTime(Date,vbLongTime)   转化为长时间格式    
   
   
   
   
     
  Top

2 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 20:50:17 得分 0

Date   函数  
  描述:返回当前系统日期。  
  语法:Date  
   
  DateAdd   函数  
  描述:返回已添加指定时间间隔的日期。    
  语法:DateAdd(interval,   number,   date)  
  interval:   必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。    
  number:   必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。    
  date:   必选。Variant   或要添加   interval   的表示日期的文字。      
  interval   参数可以有以下值:  
  yyyy   (年)   、q   (季度)   、m   (月)   、y   (一年的日数)   、d   (日)   、w   (一周的日数)   、ww   (周)   、h   (小时)   、n   (分钟)   、s   (秒)  
  说明:可用   DateAdd   函数从日期中添加或减去指定时间间隔。例如可以使用   DateAdd   从当天算起   30   天以后的日期或从现在算起   45   分钟以后的时间。要向   date   添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。  
  DateAdd   函数不会返回无效日期。如下示例将   95   年   1   月   31   日加上一个月:  
  NewDate   =   DateAdd("m",   1,   "31-Jan-95")  
  在这个例子中,DateAdd   返回   95   年   2   月   28   日,而不是   95   年   2   月   31   日。如果   date   为   96   年   1   月   31   日,则返回   96   年   2   月   29   日,这是因为   1996   是闰年。  
  如果计算的日期是在公元   100   年之前则会产生错误。  
  如果   number   不是   Long   型值,则在计算前四舍五入为最接近的整数。    
   
  DateDiff   函数  
  描述:返回两个日期之间的时间间隔。    
  语法:DateDiff(interval,   date1,   date2   [,firstdayofweek[,   firstweekofyear>)  
  interval:   必选。字符串表达式,表示用于计算   date1   和   date2   之间的时间间隔。有关数值,请参阅“设置”部分。    
  date1,   date2:   必选。日期表达式。用于计算的两个日期。    
  firstdayofweek:   可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。    
  firstweekofyear:   可选。指定一年中第一周的常数。如果没有指定,则默认为   1   月   1   日所在的星期。有关数值,请参阅“设置”部分。    
  interval   参数可以有以下值:  
  yyyy   (年)   、q   (季度)   、m   (月)   、y   (一年的日数)   、d   (日)   、w   (一周的日数)   、ww   (周)   、h   (小时)   、n   (分钟)   、s   (秒)  
  firstdayofweek   参数可以有以下值:  
  (以下分别为:常数   值   描述)  
  vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。    
  vbSunday   1   星期日(默认)    
  vbMonday   2   星期一    
  vbTuesday   3   星期二    
  vbWednesday   4   星期三    
  vbThursday   5   星期四    
  vbFriday   6   星期五    
  vbSaturday   7   星期六    
  firstweekofyear   参数可以有以下值:  
  (以下分别为:常数   值   描述)  
  vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。    
  vbFirstJan1   1   由   1   月   1   日所在的星期开始(默认)。    
  vbFirstFourDays   2   由在新年中至少有四天的第一周开始。    
  vbFirstFullWeek   3   由在新的一年中第一个完整的周开始。    
  说明:DateDiff   函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用   DateDiff   计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。  
  要计算   date1   和   date2   相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当   interval   为“一周的日数”(“w”)时,DateDiff   返回两个日期之间的星期数。如果   date1   是星期一,则   DateDiff   计算到   date2   之前星期一的数目。此结果包含   date2   而不包含   date1。如果   interval   是“周”(“ww”),则   DateDiff   函数返回日历表中两个日期之间的星期数。函数计算   date1   和   date2   之间星期日的数目。如果   date2   是星期日,DateDiff   将计算   date2,但即使   date1   是星期日,也不会计算   date1。  
  如果   date1   晚于   date2,则   DateDiff   函数返回负数。  
  firstdayofweek   参数会对使用“w”和“ww”间隔符号的计算产生影响。  
  如果   date1   或   date2   是日期文字,则指定的年度会成为日期的固定部分。但是如果   date1   或   date2   被包括在引号   ("   ")   中并且省略年份,则在代码中每次计算   date1   或   date2   表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。  
  在   interval   为“年”(“yyyy”)时,比较   12   月   31   日和来年的   1   月   1   日,虽然实际上只相差一天,DateDiff   返回   1   表示相差一个年份。    
   
  DatePart   函数  
  描述:返回给定日期的指定部分。  
  语法:DatePart(interval,   date[,   firstdayofweek[,   firstweekofyear>)  
  DatePart:   函数的语法有以下参数:  
  interval:   必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。    
  date:   必选。要计算的日期表达式。    
  firstdayof   week:   可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。    
  firstweekofyear:   可选。指定一年中第一周的常数。如果没有指定,则默认为   1   月   1   日所在的星期。有关数值,请参阅“设置”部分。    
  interval   参数可以有以下值:  
  yyyy   (年)   、q   (季度)   、m   (月)   、y   (一年的日数)   、d   (日)   、w   (一周的日数)   、ww   (周)   、h   (小时)   、n   (分钟)   、s   (秒)  
  firstdayofweek   参数可以有以下值:  
  (以下分别为:常数   值   描述)  
  vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。    
  vbSunday   1   星期日(默认)    
  vbMonday   2   星期一    
  vbTuesday   3   星期二    
  vbWednesday   4   星期三    
  vbThursday   5   星期四    
  vbFriday   6   星期五    
  vbSaturday   7   星期六    
  firstweekofyear   参数可以有以下值:  
  (以下分别为:常数   值   描述)  
  vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。    
  vbFirstJan1   1   由   1   月   1   日所在的星期开始(默认)。    
  vbFirstFourDays   2   由在新年中至少有四天的第一周开始。    
  vbFirstFullWeek   3   由在新的一年中第一个完整的周(不跨年度)开始。    
  说明:DatePart   函数用于计算日期并返回指定的时间间隔。例如使用   DatePart   计算某一天是星期几或当前的时间。  
  firstdayofweek   参数会影响使用“w”和“ww”间隔符号的计算。  
  如果   date   是日期文字,则指定的年度会成为日期的固定部分。但是如果   date   被包含在引号   ("   ")   中,并且省略年份,则在代码中每次计算   date   表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。    
  DateSerial   函数  
  描述:对于指定的年、月、日,返回   Date   子类型的   Variant。  
  语法:DateSerial(year,   month,   day)  
  year:   从   100   到   9999   之间的数字或数值表达式。    
  month:   任意数值表达式。    
  day:   任意数值表达式。    
  说明:要指定日期,如   1991   年   12   月   31   日,DateSerial   函数中每个参数的取值范围都应该是可接受的;即日的取值应在   1   和   31   之间,月的取值应在   1   和   12   之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。  
  以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial   函数返回   1990   年   8   月   1   日之前十年   (1990   -   10)   零两个月   (8   -   2)   又一天   (1   -   1)   的日期:即   1980   年   5   月   31   日。  
  DateSerial(1990   -   10,   8   -   2,   1   -   1)  
  对于   year   参数,若取值范围是从   0   到   99,则被解释为   1900   到   1999   年。对于此范围之外的   year   参数,则使用四位数字表示年份(例如   1800   年)。  
  当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了   35   天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出   -32,768   到   32,767   的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。  
   
  Datevalue   函数  
  描述:返回   Date   子类型的   Variant。  
  语法:Datevalue(date)  
  date   参数应是字符串表达式,表示从   100   年   1   月   1   日到   9999   年   12   月   31   日中的一个日期。但是,date   也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。  
  说明:如果   date   参数包含时间信息,则   Datevalue   不会返回时间信息。但是如果   date   包含无效的时间信息(如   "89:98"),就会出现错误。  
  如果   date   是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则   Datevalue   将会根据为系统指定的短日期格式识别月、日和年的顺序。Datevalue   还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别   12/30/1991   和   12/30/91   之外,Datevalue   还能识别   December   30,   1991   和   Dec   30,   1991。  
  如果省略了   date   的年份部分,Datevalue   将使用计算机系统日期中的当前年份。  
   
  Day   函数  
  描述:返回   1   到   31   之间的一个整数(包括   1   和31),代表某月中的一天。  
  语法:Day(date)  
  date   参数是任意可以代表日期的表达式。如果   date   参数中包含   Null,则返回   Null。  
   
  FormatDateTime   函数  
  描述:返回表达式,此表达式已被格式化为日期或时间。    
  语法:FormatDateTime(Date[,NamedFormat])  
  Date:   必选。要被格式化的日期表达式。    
  NamedFormat:   可选。指示所使用的日期/时间格式的数值,如果省略,则使用   vbGeneralDate。    
  NamedFormat   参数可以有以下值:  
  (以下分别为:常数   值   描述)  
  vbGeneralDate   0   显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。      
  vbLongDate   1   使用计算机区域设置中指定的长日期格式显示日期。    
  vbShortDate   2   使用计算机区域设置中指定的短日期格式显示日期。    
  vbLongTime   3   使用计算机区域设置中指定的时间格式显示时间。    
  vbShortTime   4   使用   24   小时格式   (hh:mm)   显示时间。    
   
  Top

3 楼caixinke(<<虎讯网>>hoosoon.com)回复于 2006-03-17 20:50:39 得分 0

Hour   函数  
  描述:返回   0   到   23   之间的一个整数(包括   0   和   23),代表一天中的某一小时。  
  语法:Hour(time)  
  time   参数是任意可以代表时间的表达式。如果   time   参数中包含   Null,则返回   Null。  
   
  Minute   函数  
  描述:返回   0   到   59   之间的一个整数(包括   0   和59),代表一小时内的某一分钟。  
  语法:Minute(time)  
  time   参数是任意可以代表时间的表达式。如果   time   参数包含   Null,则返回   Null。  
   
  Month   函数  
  描述:返回   1   到   12   之间的一个整数(包括   1   和   12),代表一年中的某月。  
  语法:Month(date)  
  date   参数是任意可以代表日期的表达式。如果   date   参数中包含   Null,则返回   Null。  
   
     
     
  MonthName   函数  
  描述:返回表明指定月份的字符串。  
  语法:MonthName(month[,   abbreviate])  
  month:   必选。月份的数值定义。例如,一月是   1,二月是   2,以此类推。    
  abbreviate:   可选。Boolean   值,表明月份名称是否简写。如果省略,默认值为   False,即不简写月份名称。    
   
  Now   函数  
  描述:根据计算机系统设定的日期和时间返回当前的日期和时间值。  
  语法:Now  
   
  Second   函数  
  描述:返回   0   到   59   之间的一个整数(包括   1   和   59),代表一分钟内的某一秒。  
  语法:Second(time)  
  time   参数是任意可以代表时间的表达式。如果   time   参数中包含   Null,则返回   Null。  
   
  Time   函数  
  描述:返回   Date   子类型   Variant,指示当前系统时间。  
  语法:Time  
   
  TimeSerial   函数  
  描述:返回一个   Date   子类型的   Variant,含有指定时、分、秒的时间。  
  语法:TimeSerial(hour,   minute,   second)  
  hour:   其值为从   0   (12:00   A.M.)   到   23   (11:00   P.M.)   的数值或数值表达式。    
  minute:   任意数值表达式。    
  second:   任意数值表达式。    
  说明:要指定一时刻,如   11:59:59,TimeSerial   的参数取值应在可接受的范围内;也就是说,小时应介于   0-23   之间,分和秒应介于   0-59   之间。但是,可以使用数值表达式为每个参数指定相对时间,这一表达式代表某时刻之前或之后的时、分或秒数。以下样例中使用了表达式代替绝对时间数。TimeSerial   函数返回中午之前六小时   (12   -   6)   十五分钟的时间   (-15),即   5:45:00   A.M.。    
  TimeSerial(12   -   6,   -15,   0)  
  当任何一个参数的取值超出可接受的范围时,它会正确地进位到下一个较大的时间单位中。例如,如果指定了   75   分钟,则这个时间被解释成一小时十五分钟。但是,如果任何一个参数值超出   -32768   到   32767   的范围,就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围,也会导致错误。  
   
  Timevalue   函数  
  描述:返回包含时间的   Date   子类型的   Variant。  
  语法:Timevalue(time)  
  time   参数通常是代表从   0:00:00   (12:00:00   A.M.)   到   23:59:59   (11:59:59   P.M.)   的字符串表达式(包括   0:00:00   和   23:59:59)。不过,time   也可以是代表该范围内任何时间的表达式。如果   time   参数包含   Null,则返回   Null。  
  说明:可以采用   12   或   24   小时时钟格式输入时间。例如   "2:24PM"   和   "14:24"   都是有效的   time   参数。  
  如果   time   参数包含日期信息,   Timevalue   函数并不返回日期信息。然而,如果   time   参数包含无效的日期信息,则会出现错误。  
   
  Weekday   函数  
  描述:返回代表一星期中某天的整数。  
  语法:Weekday(date,   [firstdayofweek])  
  date:   可以代表日期的任意表达式。如果   date   参数中包含   Null,则返回   Null。    
  firstdayofweek:   指定星期中第一天的常数。如果省略,默认使用   vbSunday。    
  firstdayofweek   参数有如下设置:  
  (以下分别为:常数   值   描述)  
  vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。    
  vbSunday   1   星期日    
  vbMonday   2   星期一    
  vbTuesday   3   星期二    
  vbWednesday   4   星期三    
  vbThursday   5   星期四    
  vbFriday   6   星期五    
  vbSaturday   7   星期六    
  Weekday   函数返回如下值:  
  (以下分别为:常数   值   描述)  
  vbSunday   1   星期日    
  vbMonday   2   星期一    
  vbTuesday   3   星期二    
  vbWednesday   4   星期三    
  vbThursday   5   星期四    
  vbFriday   6   星期五    
  vbSaturday   7   星期六    
   
  WeekdayName   函数  
  描述:返回一个字符串,表示星期中指定的某一天。  
  语法:WeekDayName(weekday,   abbreviate,   firstdayofweek)  
  weekday:   必选。星期中某天的数值定义。各天的数值定义取决于   firstdayofweek   参数设置。    
  abbreviate:   可选。Boolean   值,指明是否缩写表示星期各天的名称。如果省略,   默认值为   False,即不缩写星期各天的名称。    
  firstdayofweek:   可选。指明星期第一天的数值。关于数值,请参阅“设置”部分。    
  firstdayofweek   参数有以下值:  
  (以下分别为:常数   值   描述)  
  vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。    
  vbSunday   1   星期日(默认)    
  vbMonday   2   星期一    
  vbTuesday   3   星期二    
  vbWednesday   4   星期三    
  vbThursday   5   星期四    
  vbFriday   6   星期五    
  vbSaturday   7   星期六    
   
  Year   函数  
  描述:返回一个代表某年的整数。  
  语法:Year(date)  
  date   参数是任意可以代表日期的参数。如果   date   参数中包含   Null,则返回   Null。Top

4 楼redzero_o(redzero_o)回复于 2006-03-21 08:24:12 得分 15

System.DateTime   dtA=(DateTime)this.StartDate.Text;  
  System.DateTime   dtB=(DateTime)this.EndDate.Text;  
  TimeSpan   c=db-da;  
  Response.Write(c.TotalDays);Top

5 楼xiantao123(.Net初学者)回复于 2006-03-21 08:40:44 得分 0

TimeSpan类Top

相关问题

  • 请问有计算两个日期间相差天数的函数吗??
  • 怎样计算两个日期相差的天数?
  • 如何计算两个java.util.Date之间相差的天数啊?
  • 如何计算两个日期之间相差的天数?
  • 计算两个日期间的天数
  • @@@@@@@怎样计算两个日期类型之间相差的天数(integer类型)???
  • 怎样用javaScript计算两个日期字符串相差的天数?
  • 如何计算两个日期间的天数?(高手关注)
  • (紧急求助)如何取得一个java.sql.Date类型当月的天数和计算两个Date相差的天数呢?
  • 计算天数的问题

关键词

  • 函数
  • 间隔
  • 数值
  • date
  • 转化
  • 语法
  • 日期
  • mydate
  • 给定
  • myvar

得分解答快速导航

  • 帖主:johnny1983
  • caixinke
  • redzero_o

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo