如何计算两个日期之间的日期 [英] How to calculate day between two dates

查看:104
本文介绍了如何计算两个日期之间的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好b $ b

我需要在asp.net文本框中的两个日期之间计算。



平均值22.04.2018下午12点到23.04.2018 12.00 pm应计算=一天



请给我建议



Maideen



我的尝试:



如果为True则
Dim dt1 As DateTime = Convert.ToDateTime(Me.txtDateFrom.Text)
Dim dt2 As DateTime = Convert.ToDateTime(Me.txtDateTo.Text)
Dim ts As TimeSpan = dt2.Subtract(dt1)
如果Convert.ToInt32(ts.Days)> = 0那么
Me.txtNoDays.Text = Convert.ToInt32(ts.Days)+ 1
ElseIf dt1 = dt2然后
Me.txtNoDays.Text =无效输入
结束如果
结束如果

解决方案

从计算中取消+ 1...



但是,不要在用户输入上使用转换操作:始终使用适当的TryParse(或TryParseExact)方法代替。用户总是键入错误的内容,因此您的应用不会因此而崩溃。显示错误消息并给他们更改以修复错误要友好得多!


除了OriginalGriff解决方案#1之外,请检查:

  Dim  s1 =   22.04.2018 12.00 pm 
Dim s2 = 23.04.2018 12.00 pm

Dim ci As Globalization.CultureInfo = Globalization.CultureInfo.InvariantCulture
Dim fmt As 字符串 = dd.MM.yyyy HH.mm tt
Dim dt1 As DateTime = DateTime.Now
Dim dt2 As DateTime = DateTime.Now
尝试
dt1 = DateTime.ParseExact(s1,fmt,ci)
dt2 = DateTime.ParseExact(s2,fmt,ci)
Catch Ex As 异常
Console.WriteLine(Ex.Message)
结束 尝试

Dim dayspasssed As Integer = dt2.Subtract(dt1).Days
Console.WriteLine( '{0}'和'{1}'之间的区别是:{2} day(s),dt2.ToString( yyyy-MM-dd),dt1.ToString( yyyy-MM-dd),dayspassed)





有关详细信息,请参阅:

如何:将字符串转换为DateTime | Microsoft Docs [ ^ ]

DateTime.ParseExact方法(字符串,字符串,IFormatProvider)(系统) [ ^ ]

使用日期和时间执行算术运算Microsoft Docs [ ^ ]


Hi
I need to calculate between two date in asp.net text box.

mean 22.04.2018 12.00 pm to 23.04.2018 12.00 pm should be calculate = one day

Pls advice me

Maideen

What I have tried:

If True Then
    Dim dt1 As DateTime = Convert.ToDateTime(Me.txtDateFrom.Text)
    Dim dt2 As DateTime = Convert.ToDateTime(Me.txtDateTo.Text)
    Dim ts As TimeSpan = dt2.Subtract(dt1)
    If Convert.ToInt32(ts.Days) >= 0 Then
        Me.txtNoDays.Text = Convert.ToInt32(ts.Days) + 1
    ElseIf dt1 = dt2 Then
        Me.txtNoDays.Text = "Invalid Input"
    End If
End If

解决方案

Take off the "+ 1" from the calculation...

But also, don't use Convert operations on user input: always use the appropriate TryParse (or TryParseExact) method instead. Users always type the wrong thing, and your app shouldn't crash as a result. Displaying an error message instead and giving them a change to fix the error is much more friendly!


In addition to solution #1 by OriginalGriff, check this:

Dim s1 = "22.04.2018 12.00 pm"
Dim s2 = "23.04.2018 12.00 pm"

Dim ci As Globalization.CultureInfo = Globalization.CultureInfo.InvariantCulture 
Dim fmt As String = "dd.MM.yyyy HH.mm tt"
Dim dt1 As DateTime = DateTime.Now
Dim dt2 As DateTime = DateTime.Now
Try
	dt1 = DateTime.ParseExact(s1, fmt, ci)
	dt2 = DateTime.ParseExact(s2, fmt, ci)
Catch Ex As Exception
	Console.WriteLine(Ex.Message)
End Try

Dim dayspassed As Integer = dt2.Subtract(dt1).Days
Console.WriteLine("Difference between '{0}' and '{1}' is: {2} day(s)", dt2.ToString("yyyy-MM-dd"), dt1.ToString("yyyy-MM-dd"), dayspassed)



For further details, please see:
How to: convert strings to DateTime | Microsoft Docs[^]
DateTime.ParseExact Method (String, String, IFormatProvider) (System)[^]
Performing arithmetic operations with dates and times | Microsoft Docs[^]


这篇关于如何计算两个日期之间的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆