vb.net 教程 1-8 日期时间类型1
2017-03-18 20:27
363 查看
vb.net中日期时间函数使用DateTime,vb6中用的是Date,vb.net中也可以将日期时间定义为Date,两者几乎没有区别。
我们来看定义一个日期时间:
显示结果如下:
当然也可以通过,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秒"))
那么我们来看看怎么求两个日期时间的时间差:
返回结果如下:
以上只是求月份的差,那么天数差呢?我们还需要考虑大月、小月,闰年等因素。这样就太烦杂了。
我们可以使用DateTime.Subtract 方法,求出从此实例中减去指定的时间或持续时间。实际返回的是一个TimeSpan结构,表示一个时间间隔。
如下代码:
返回结果如下:
需要注意的是
TimeSpan.Hours 返回值为Integer,范围为 -23 到 23
TimeSpan.TotalHours 返回值为Double,包括整数和小数的小时数。
TimeSpan.Days、TimeSpan.TotalDays、TimeSpan.Minutes、TimeSpan.TotalMinutes。。。。请参考上面的TimeSpan.Hours和TimeSpan.TotalHours
我们也可以直接使用 算术的减号“-”来求两个日期时间的间隔,其结果为TimeSpan,例如:
结果是:
上面我们也可看到,由于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 教程 目录
我们来看定义一个日期时间:
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 教程 目录
相关文章推荐
- vb.net 教程 1-8 日期时间类型2
- VB.NET中,时间日期数据类型的处理与常见问题
- 【个人机房重构】—— VB.NET中,时间日期数据类型的处理与常见问题
- vb.net 时间类型转字符串后的格式
- 使用.NET Framework中新的日期时间类型
- VB.NET中的日期时间转换
- vb.net 教程 1-7 数据类型:Boolean
- vb.net 教程 1-6 数据类型:数值数据转换 1
- VB.NET中的日期时间转换
- MySQL基础教程2 —— 数据类型之日期和时间类型
- vb.net 教程 1-3 数据类型:String 2
- vb.net 常见时间类型问题
- 使用.NET Framework中新的日期时间类型[转]
- VB.NET中的日期时间转换
- VB.NET时间日期数据处理及技巧
- ASP.Net前端:获取服务器端即时日期时间并转换为js日期类型
- VB.Net中日期类型的简单使用
- (摘)VB.NET时间日期数据处理及技巧
- [VB.NET源码]5_时间日期
- vb.net 日期时间格式转换(Format函数)