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



我在内部读了一个带有保存的日期/时间字符串的ini-file。

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

我在我的C#程序中都有两个值。现在,我想将" UPDATE"保存在值(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

我需要知道时间是否改变。我的问题现在是如何将字符串用日期和时间转换为我可以添加5秒的东西,以及如何比较,然后将两个值(与new for New相关的旧 速率)

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

感谢您的帮助

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

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

如果要操纵值,请使用AddX上的CC_7

Update_New = Update_New.AddSeconds(5);
Update_New = Update_New.AddHours(5);  
Update_New = Update_New.AddDays(1);

如果将 Update_oldUpdate_new分析到数据时,则2个日期时间的减法结果之一是 TimeSpan,它很方便地具有诸如 TotalSeconds的属性。

if ((UpdateNewDateTime - UpdateOldDateTime).TotalSeconds > 5)
{ ...

但是,如果您正在做很多日期操作,我建议您也考虑查看Nodatime。这也考虑到标准.NET DateTime(如时区),日光节省和人类日历中不一致的问题。

您可以使用DateTime.ParseExact获取DateTime和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)
{
    // ...
}

side Note:而不是使用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,因为当前文化可能会改变。

将字符串转换为dateTime type;

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

正如蒂姆·施梅特(Tim Schmelter)所说

TimeSpan seconds = TimeSpan.FromSeconds(10);

并使用操作员&lt; =,> =,==,>,&lt;。

相关内容

  • 没有找到相关文章

最新更新