`
star65225692
  • 浏览: 277107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

VB.NET中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

运行结果:

二、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()使用RDLC报表定义文件和ReportViewer控件

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 值,该值表示午夜之后的秒数。秒数为返回值的整数部分,毫秒数则为小数部分。

分享到:
评论

相关推荐

    VB.NET.rar_.net 教程_VB.net教程_Visual Basic.Net_vb.net_vb.net 实例

    《VB.NET教程——Visual Basic .NET深度学习指南》 Visual Basic .NET(简称VB.NET)是微软公司推出的面向对象的编程语言,它是.NET框架的一部分,为开发者提供了强大的开发工具和丰富的功能,尤其适合快速应用程序...

    vb.net.zip_VB.NET 控件_vb.net_vb.net excel_vb.net 控件_vb.net控件

    VB.NET 是一种基于.NET Framework的编程语言,由微软公司开发,用于构建Windows桌面应用程序、Web应用...通过学习和实践这些示例,开发者可以提升其在VB.NET控件使用、Excel操作、网络通信和多线程编程等方面的能力。

    VB.Net2010VB6转VB.Net(高清视频+源码).zip

    通过学习这些源码,你可以了解如何将 VB6 的概念和技术应用到 VB.Net 中。例如,如何将 VB6 的过程转换为 VB.Net 的方法,如何使用 VB.Net 的控件替代 VB6 的控件,以及如何处理事件和异常等。 源码的实践运行是...

    VB.NET.rar_vb.net_vb.net信息

    这个源码示例对于学习VB.NET和WMI的结合使用非常有帮助,开发者可以借此了解如何获取并处理系统级别的信息,为自己的应用提供更丰富的功能。在实际项目中,这样的功能可能被用于系统监控、日志记录、故障排查等多种...

    VB6.0与vb.net对照表

    - `Date`,`DateTime`,`Time`:VB6.0中的日期和时间函数在VB.NET中由`System.DateTime`类和相关方法处理。 - `DateAdd`,`DateDiff`,`DatePart`,`Day`,`Month`,`Year`等:VB6.0中的日期函数在VB.NET中由`...

    VB.NET视频教程|如何学习VB.NET|VB.NET比VB6.0哪个好

    在"VB.NET视频教程|如何学习VB.NET|VB.NET比VB6.0哪个好"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **VB.NET的基础概念**:VB.NET是.NET Framework的一部分,它提供了一个简洁的语法结构,便于开发者...

    VB.NET 程序自动升级功能模块

    在VB.NET编程环境中,开发应用程序时,为了提供更好的用户体验和服务,常常需要实现程序的自动升级功能。这个功能允许用户在不手动下载安装新版本的情况下,程序可以自动检测更新并完成升级过程。以下是对VB.NET程序...

    VB.net2005 GPIB32接口模块

    标题中的“VB.net2005 GPIB32接口模块”指的是使用VB.NET 2005编程语言设计的一个模块,该模块允许程序通过GPIB(通用接口总线)与硬件设备进行通信。GPIB是一种广泛用于科学仪器、数据采集系统和其他工业设备之间的...

    VB.NET2010_MODBUS.zip_VB MODBUS_modbus vb_vb modbus_vb.net RS4

    本项目是作者初次尝试使用VB.NET 2010实现RS485 MODBUS通信,这对于初学者或者需要进行MODBUS协议编程的开发者来说,是一个很好的学习资源。 首先,我们需要了解MODBUS协议。MODBUS是一种通用、开放的通信协议,由...

    vb.net中listview双缓冲解决数据刷新时假死和闪频

    C#与VB.NET都是.NET开发平台上的语言,虽然语法有差异,但基本概念和编程模式是相通的,因此学习C#的相关资源也可以帮助理解VB.NET中的问题。 综上所述,解决VB.NET中ListView控件的假死和闪烁问题,主要涉及到双...

    VB.Net Modbus通讯的基础模块

    理解Modbus协议的原理,掌握VB.Net中的串行和网络通信技术,是构建高效Modbus通信模块的关键。通过`Modbus.vb`这样的类库,开发者可以轻松地在自己的应用程序中集成Modbus通信功能,从而实现更复杂的自动化控制和...

    VB.NET教程中高级篇

    VB.NET是一种基于.NET Framework的编程语言,由微软公司开发,它是Visual Basic的现代版本,具有更强大、更灵活的功能。...通过学习和实践这些示例,你将能够深入理解VB.NET的中高级特性,并提升你的编程技能。

    vb.net下的MQTT服务器、客户端

    在VB.NET环境中,MQTT(Message Queuing Telemetry Transport)是一种广泛使用的轻量级协议,专为物联网(IoT)设备和低带宽、高延迟或不可靠的网络设计。本项目聚焦于如何在VB.NET中实现MQTT服务器和客户端,以实现...

    VB.NET 源代码学习

    学习这些代码可以帮助你理解VB.NET的语法、编程模式以及如何将理论知识应用于实践中。此外,通过调试和修改这些代码,你将深化对VB.NET的理解,提升编程技能。记得实践是检验真理的唯一标准,理论知识结合实际操作,...

    VB.NET2008速成精简版

    总之,"VB.NET 2008速成精简版"是学习VB.NET编程的一个便捷途径,结合.NET Framework和Visual Studio Express的强大功能,无论是对初学者还是有一定经验的开发者,都能提供一个良好的学习和开发环境。通过深入学习和...

    VB.Net中文教程(PDF)

    3. **控件与窗体**:在VB.NET中,用户界面通常通过窗体和控件构建。本教程会教授如何添加、布局和自定义这些元素,以及如何处理用户的输入事件。 4. **数据类型与变量**:VB.NET有多种内置数据类型,如整型、浮点型...

    简单vb.net 登陆模块

    在这个简单的VB.NET登录模块中,我们将探讨如何实现这个功能,并学习相关的关键概念。 首先,VB.NET(Visual Basic .NET)是微软开发的一种面向对象的编程语言,它是.NET框架的一部分,支持多种编程模型,包括...

    VB.Net.to.C.Sharp.Converter(VB.net转换成C#批量工具)

    VB.Net to C# Converter(代码转换工具) v2.23 VB.Net to C Sharp Converter 是一款将vb.net代码转化为c#代码的程序。在转化过程中,保留了原有的注释和变量名。 VB.Net to C# Converter是一款代码转换软件,将用户...

    从vb6升级到vb.net

    而在VB.NET中,`Object`成为了新的通用数据类型,这是为了更好地与.NET框架中的其他语言保持一致。 - **Integer 和 Long**:在VB6中,`Long`类型存储32位带符号整数,而`Integer`类型则存储16位带符号整数;而在VB...

    VB.NET学生成绩管理系统

    总而言之,VB.NET学生成绩管理系统是学习和掌握VB.NET编程技术的理想项目,它涵盖了面向对象编程、数据库操作、UI设计等多个方面,通过实际操作,不仅可以提升编程技能,还能培养解决问题和项目管理的能力。...

Global site tag (gtag.js) - Google Analytics