如何检查日期/时间是否大于另一个

时间:2014-02-07 16:19:37

标签: c# .net datetime compare add

我读了一个ini文件,里面有一个保存的日期/时间字符串。

[Data]
Update = 07.02.2014 13:30:36
Rate_s = 5

我在C#程序中将两个值都作为字符串。 现在我想在值(Update_old)中保存“更新”,下次我读取文件时我想检查Update_old + Rate_s> = Update_new

平均值 我第一次阅读文件:

Update_old = 07.02.2014 13:30:36

然后10秒钟

Update_New = 07.02.2014 13:30:46

我需要知道时间是否改变了。 我现在的问题是如何将带有日期和时间的字符串转换成我可以添加5secs的字符串以及如何比较两个值(旧+率与新值)

新的时间可能只有5秒钟,但我也可能在5小时后的1天。

感谢您的帮助

4 个答案:

答案 0 :(得分:1)

您需要使用DateTime.Parse将字符串值解析为DateTime结构。然后只需与<>==!=

进行比较
DateTime Update_New = DateTime.Parse("07.02.2014 13:30:36");
if (Update_New > Update_old)
{
}

如果您想操纵值,请使用AddX

上的DateTime
Update_New = Update_New.AddSeconds(5);
Update_New = Update_New.AddHours(5);  
Update_New = Update_New.AddDays(1);

答案 1 :(得分:1)

如果Update_oldUpdate_new同时TimeSpanTotalSeconds进入日期时间,则parse的可能结果之一是if ((UpdateNewDateTime - UpdateOldDateTime).TotalSeconds > 5) { ... ,其中方便地具有{{1}}等属性{1}}即

{{1}}

但是,如果您正在进行大量日期操作,我建议您也考虑查看subtraction of 2 date times。这也考虑了NodaTime,如TimeZones,夏令时和人体日历中的不一致。

答案 2 :(得分:1)

您可以使用DateTime.ParseExact获取日期时间,使用TimeSpan.FromSeconds获得5秒的TimeSpan

string Update_old = "07.02.2014 13:30:36";
string Rate_s = "5";
DateTime oldDt = DateTime.ParseExact(Update_old, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);

string Update_New = "07.02.2014 13:30:46";
DateTime newDt = DateTime.ParseExact(Update_New, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);
TimeSpan seconds = TimeSpan.FromSeconds(int.Parse(Rate_s));
if (oldDt + seconds > newDt)
{
    // ...
}

旁注:您可以使用ParseExact来使用正确的文化,而不是使用DateTime.Parse。在这种情况下,它可能是德国文化(“de-DE”):

var deCulture = CultureInfo.CreateSpecificCulture("de-DE");
DateTime oldDt = DateTime.Parse("07.02.2014 13:30:36", deCulture);
DateTime newDt = DateTime.Parse("07.02.2014 13:30:46", deCulture);

由于这是一个文件,我不会在没有文化的情况下使用DateTime.Parse,因为当前文化可能会发生变化。

答案 3 :(得分:1)

将字符串转换为日期时间类型;

DateTime start = (DateTime)strDateTime.toDate("dd.MM.yyyy H:mm:ss");

正如Tim Schmelter所说使用TimeSpan添加一段时间(例如10秒)

TimeSpan seconds = TimeSpan.FromSeconds(10);

并使用运算符进行比较&lt; =,&gt; =,==,&gt;,&lt;。