C#窗体 - 在两个日期之间获取时间

C#窗体 - 在两个日期之间获取时间

问题描述:

我试图找到两个日期之间的时间,一个是当前日期(今天),另一个是用户定义的截止日期。C#窗体 - 在两个日期之间获取时间

我用C#Windows窗体工作,我已经使用了“日期时间选择器”,使用户可以选择一个截止日期,我已经创建了一个名为字符串今天与使用

string Today = System.DateTime.Today.ToString("dd-mm-yyyy"); 

作为当前日期。但我不知道如何找到这两点之间的时间长度(因为它们是字符串),我的程序是一个简单的“待办事项列表”,任务持续时间在几天和几周(“yyyy”只是出于美学目的,如果需要可以将其去除)。

我已经看过了互联网,所有我似乎可以找到的是如何用“DateTime”来代替字符串(或者我错过了什么?)。

任何帮助将大大apreciated。

使用您的DateTimePicker的“值”属性来获取DateTime值,并使用DateTime.Now来获取当前时间的DateTime值(在本地时区)。

如果您只是减去日期(没有时间分量),请在减去前访问两个DateTime对象的Date属性。

DateTime userDate = dateTimePicker.Value.Date; 
DateTime currentDate = DateTime.Now.Date; 
TimeSpan difference = userDate.Subtract(currentDate); //assuming deadline is in the future 
+0

我试过你的建议,但我不知道如何显示Timespan,我一直在玩日期,日期和ToString()属性,但我似乎无法到任何地方。所有我想到的是“00:00:00”,我认为这是因为它寻找的是分钟和几小时而没有得到任何东西,因为我正在发送它的日期。有任何想法吗? – Raker 2012-04-29 13:21:31

+0

你想要展示什么?总天数或更具体的测量?如果您仅在天数之后,请使用TimeSpan的TotalDays属性(请参阅文档:http://msdn.microsoft.com/zh-cn/library/system.timespan.aspx)。 – roken 2012-04-29 19:55:30

+0

我明白了,我使用了Timespan的不同属性来获得我正在寻找的东西。谢谢你的帮助。 – Raker 2012-04-30 12:11:19

请勿使用两个字符串 - 使用实际的DateTime实例。字符串不能也不能“理解”日期 - 这就是为什么DateTime对象存在。

当你从对方减去两个日期时,你会得到一个TimeSpan实例。这给你时间差的数量。

TimeSpan difference = date1 - date2; 

我想下面的您正在寻找:

Date1.Subtract(日期2).TotalTime

下面的链接将帮助您了解更多 http://www.c-sharpcorner.com/UploadFile/DipalChoksi/DateDiff_CS_DC09132006172429PM/DateDiff_CS_DC.aspx

AS俄德提到的字符串不是最好的方法。日期时间不能相互替代,并给你一个TimeSpan,它代表了一个时间跨度。

这是一个MSDN示例,应该澄清事情。

DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0); 
DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0); 
TimeSpan travelTime = arrival - departure; 
Console.WriteLine("{0} - {1} = {2}", arrival, departure, travelTime);  
// The example displays the following output: 
//  6/13/2010 10:47:00 PM - 6/12/2010 6:32:00 PM = 1.04:15:00