VB.NET中DateAndTime模块学习

摘要:
DateAndTime模块包括使用日期和时间的属性和过程。PublicOverloadsFunctionDateDiffAsLong仔细观察到它类似于DateAdd。实际上,它是将dateadd的结果更改为datediff的第二个参数,而datediff结果是dateadd的第二参数。PublicFunctionDateSerialAsDateTime注意:年、月、日和其他数字支持0和负数。

DateAndTime模块包括日期和时间使用中的属性、过程。

 一、DateAdd

返回指定时间间隔后的date值,既可以是增值,也可以是减值。比如:你想得到2011年3月31日的前一个月的时间值,应当是2011年2月28日,你不必编代码,只需DateAdd(DateInterval.month,-1,#3/31/2011#)一句即可。你想得到45分钟后的时间,可以这样:DateAdd(DateInterval.Minute,  45, #3/31/2011 11:15:01 PM#)。

日期时间的常量定义:#月/日/年 时:分:秒 AM(PM)#  , 时:分:秒 AM(PM)可选。

该模块的定义:Public Overloads Function DateAdd( ByVal Interval As DateInterval,  ByVal Number As Double, ByVal DateValue As DateTime ) As DateTime ,三个参数均必选。第一个参数指定时间间隔是年、季、月、周、日、小时、分或者秒等;第二个参数是间隔的数值;第三个参数是时间的基础值,模块结果 = 基础值 + 第一个参数 * 第二个参数

示例:
    Sub Main()
        Dim newdate As Date
        newdate = DateAdd(DateInterval.Minute, 45, #1/1/2011 11:15:01 PM#)
        System.Console.WriteLine("45分钟后是:{0}", newdate)
        System.Console.ReadLine()

    End Sub

运行结果:

VB.NET中DateAndTime模块学习第1张

二、DateDiff

返回一个两个日期long类型的差值。

Public Overloads Function DateDiff( _
    ByVal Interval As [ DateInterval | String ], _
    ByVal Date1 As DateTime, _
    ByVal Date2 As DateTime, _
    Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _
    Optional ByVal  WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _
) As Long
仔细观察其与DateAdd很像,其实就是把dateadd的结果变成datediff的第二个参数,datediff的结果是dateadd的第二个参数。

注意点:如果将 Interval 设置为 DateInterval.WeekOfYear,则返回值表示包含 Date1 的周的第一天与包含 Date2 的周的第一天相隔的周数。

代码示例:

sub main()

 dim date1,date2 as date, dateDifferent as integer

date1 = #4/23/2011#  '星期六

date2 = #4/24/2011# '星期天,默认情况下一个周的第一天是从星期天开始的。

dateDifferent = datediff(dateinterval.weekofyear,date1,date2)

system.console.writeline("{0}与{1}相差的日历周是:{2}",date1,date2,datedifferent)

system.console.readline()

end sub

运行结果:1,不是0,weekofyear是指某天所在的日历周(一年当中的第几个周),如果使用weekday结果就是0,weekday是指两个日期天数差除以7后四舍五入的结果。

三、DatePart

Public Overloads Function DatePart( _
   ByVal Interval As DateInterval, _
   ByVal DateValue As DateTime, _
   Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday, _
   Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1 _
) As Integer
返回一个 Integer 值,其中包含给定 Date 值的指定组件。

实例:

    Sub Main()
        Dim WeekDay As Date = #1/1/2011#
        Dim DateP As Integer


        '定义list泛型  ,下面的目的只是为了演示定义泛型,可以使用WeekDayName函数求取某天是星期几。

       '例如: WeekdayName(Today.DayOfWeek, , FirstDayOfWeek.Monday) ,

       'FirstDayOfWeek.Monday是为了指定从星期一算作一个周的第一天


        Dim weekdayofcn As New List(Of String)
        weekdayofcn.Add("星期一")
        weekdayofcn.Add("星期二")
        weekdayofcn.Add("星期三")
        weekdayofcn.Add("星期四")
        weekdayofcn.Add("星期五")
        weekdayofcn.Add("星期六")
        weekdayofcn.Add("星期天")

        DateP = DatePart(DateInterval.Weekday, WeekDay) 'datepart()函数的返回值是integer

        '使用长日期格式显示日期
        Dim FDate As String = FormatDateTime(WeekDay, DateFormat.LongDate)

        System.Console.WriteLine("{0}是:{1}", FDate, weekdayofcn.Item(DateP - 1)) 

        System.Console.ReadLine()


    End Sub

运行结果:2011年1月1日是:星期天

四、DateSerial 函数

返回表示已指定年月日的 Date 值,其时间信息被设置为午夜 (00:00:00)。也就是你给它数,它告诉你时间。

Public Function DateSerial( _
   ByVal [Year] As Integer, _
   ByVal [Month] As Integer, _
   ByVal [Day] As Integer _
) As DateTime
注意:year,month,day等数支持0,负数。year的0-99解释为1930年-2029年之间,-1解释为前一年;month的0表示为上一年的12月,1为1月,13为下一年的1月;day的0表示为上月的月末,1为本月的第一天。

示例:想知道本月月末吗?

       Dim Date1 As Date
        Date1 = DateAndTime.DateSerial(Now.Year, Now.Month + 1, 0)
        System.Console.WriteLine("本月月末是:{0}", Date1)
        System.Console.ReadLine()

目前年份 10 年前的 3 月 1 日的前一天:DateSerial(-10, 3, 0)


五、DateValue函数

返回一个date值,参数是用字符串表示的日期

Public Function DateValue(ByVal StringDate As String) As DateTime
同DateSerial()函数,只不过前者使用字符串作为参数,后者使用integer作为参数,似乎后者更灵活一些

示例:DateValue("04/26/2011")  '2011年4月26日,“4/26/2011"等效”04/26/2011"

六、Today与Now、TimeOfDay

today返回的是系统对应的当前日期,没有时间值(时间值为0),timeofday返回的是系统当前的时间,没有日期值。now返回的是现在系统时间、日期。today可以设置系统时间,但需要权限,now不可以。timeofday可以设置时间值。

七、TimeSerial函数
Public Function TimeSerial( _
   ByVal Hour As Integer, _
   ByVal?Minute As Integer, _
   ByVal Second As Integer _
) As DateTime
返回一个时间值,用法同DateSerial函数。
示例:        System.Console.WriteLine("{0}", DateAndTime.TimeSerial(24 - 5, -10, 0).TimeOfDay)
        System.Console.ReadLine()
运行结果:18:50:00
八、Timer
ReadOnly Public Property Timer() As Double
返回一个 Double 值,该值表示午夜之后的秒数。秒数为返回值的整数部分,毫秒数则为小数部分。
 九、 总结
在使用日期时间函数的时候,好的习惯是先输入模块名DateAndTime,
利用IDE的智能感知查找你需要的函数。
对时间日期进行操作的函数是:datepart、dateserial、timeserial、datevalue、datediff、dateadd
当前日期、时间:today、timeofday、now

免责声明:文章转载自《VB.NET中DateAndTime模块学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于安装pymysqlVector的用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

sqlserver日期函数 dateadd,datediff ,datepart ,datename,convert

reference:http://www.cnblogs.com/coconut_zhang/archive/2009/02/02/1382598.html http://blog.itpub.net/14766526/viewspace-1156100/ select GETDATE() as '当前日期',DateName(year,GetDate()...

Sql 本周当天本期日期转换

--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info where DateDiff(hh,datetime,getDate())<=24 --info为表名,da...

获取日期

select 1 --若输出1,则数据库检测正常select GETDATE() --检测当地时间是否准确select 32-Day(getdate()+32-Day(getdate())) --检测电脑时间当前月的总天数select datediff(mm,0,getdate())select dateadd(day,-day(dateadd(mm,1,...

DateAdd 函数

DateAdd 函数 返回已添加指定时间间隔的日期。 DateAdd(interval, number, date) 参数 interval 必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。 number 必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。 date 必...