vb.net 教程 1-8 日期时间类型1

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

vb.net中日期时间函数使用DateTime,vb6中用的是Date,vb.net中也可以将日期时间定义为Date,两者几乎没有区别。

我们来看定义一个日期时间:

        Dim date1, date2 As DateTime
        date1 = Date.Now()  '获得当前本地日期和时间。这里也可以省略Date.,直接用Now()
        date2 = New DateTime(2018, 5, 12, 10, 12, 13) '用指定的年、月、日、小时、分钟和秒初始化 DateTime 
 
        '使用Format将日期时间按照我们的要求输出来
        Console.WriteLine(Format(date1, "yyyy-MM-dd HH:mm:ss"))
        Console.WriteLine(Format(date2, "yyyy年MM月dd日 HH时mm分ss秒"))
显示结果如下:

当然也可以通过,DateTime.Year、DateTime.Month、DateTime.Day、DateTime.Hour、DateTime.Minute、DateTime.Second 来分别获得年月日时分秒

以下两段代码输出一样:

Console.WriteLine("{0}年{1}月{2}日 {3}时{4}分{5}秒", date1.Year, date1.Month, date1.Day, date1.Hour, date1.Minute, date1.Second)

Console.WriteLine(Format(date2, "yyyy年M月d日 H时m分s秒"))

那么我们来看看怎么求两个日期时间的时间差:

        Dim date1, date2 As DateTime
        date1 = Date.Now()  '获得当前本地日期和时间。这里也可以省略Date.,直接用Now()
        date2 = New DateTime(2018, 5, 12, 10, 12, 13) '用指定的年、月、日、小时、分钟和秒初始化 DateTime 
 
        '相差月份
        Dim diffMonth As Integer
        diffMonth = (date2.Year - date1.Year) * 12 + (date2.Month - date1.Month)
 
        Console.WriteLine("相差月份:{0}", diffMonth)
返回结果如下:


以上只是求月份的差,那么天数差呢?我们还需要考虑大月、小月,闰年等因素。这样就太烦杂了。

我们可以使用DateTime.Subtract 方法,求出从此实例中减去指定的时间或持续时间。实际返回的是一个TimeSpan结构,表示一个时间间隔。

如下代码:

        Dim date1, date2 As DateTime
        date1 = Date.Now()  '获得当前本地日期和时间。这里也可以省略Date.,直接用Now()
        date2 = New DateTime(2018, 5, 12, 10, 12, 13) '用指定的年、月、日、小时、分钟和秒初始化 DateTime 
 
        Dim tspan As TimeSpan
        tspan = date2.Subtract(date1)
        Console.WriteLine(tspan.Hours)
        Console.WriteLine(tspan.TotalHours)
返回结果如下:

需要注意的是

TimeSpan.Hours 返回值为Integer,范围为 -23 到 23
TimeSpan.TotalHours 返回值为Double,包括整数和小数的小时数。

TimeSpan.Days、TimeSpan.TotalDays、TimeSpan.Minutes、TimeSpan.TotalMinutes。。。。请参考上面的TimeSpan.Hours和TimeSpan.TotalHours

我们也可以直接使用 算术的减号“-”来求两个日期时间的间隔,其结果为TimeSpan,例如:

    Sub Main()
        Dim date1, date2 As DateTime
        date1 = Date.Now()
        date2 = New DateTime(2018, 5, 12, 10, 12, 13)
 
        Console.WriteLine("相差天数:" & (date2 - date1).TotalDays)
        Console.WriteLine("相差小时:" & (date2 - date1).TotalHours)
        Console.WriteLine("相差分钟:" & (date2 - date1).TotalMinutes)
        Console.WriteLine("相差秒钟:" & (date2 - date1).TotalSeconds)
        Console.WriteLine("相差毫秒:" & (date2 - date1).TotalMilliseconds)
        Console.ReadKey()
    End Sub
 

结果是:

上面我们也可看到,由于TotalDays等返回的是一个Double。

最后说一下Format()格式化日期时间的用法

将表达式中的数据按照设置的格式输出字符串

例如:

Format(Now(), "yyyy,MM.dd")   ===>  2017,05.10

yyyy:四位年份

MM:两位月份,如果是1-9月,那么前面会加0

dd:两位天数,如果1-9,那么前面加0

其他如:

ddd:星期几

HH:小时

mm:分钟

ss:秒钟

MM、dd、HH、mm、ss对应的M、d、H、m、s:含义相同,但是如果是1-9,前面不会加0。

Format()的其他用法,以后还会讲到。

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供的参考。

学习更多vb.net知识,请参看vb.net教程 目录
————————————————
版权声明:本文为CSDN博主「VB.Net」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uruseibest/article/details/63266525

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值