C#从DateTime变量中减去DateTime小时数
我想与以下日期进行比较: 我有一个变量DateTime,我想比较一下这个变量的时间是否小于实际时间 例:C#从DateTime变量中减去DateTime小时数,c#,datetime,hour,date-arithmetic,C#,Datetime,Hour,Date Arithmetic,我想与以下日期进行比较: 我有一个变量DateTime,我想比较一下这个变量的时间是否小于实际时间 例: 您是否尝试改用DateTime变量?大概是这样的: DateTime date1 = new DateTime(2013, 1, 1, 13, 00, 36); DateTime dateNow = new DateTime.Now; Console.WriteLine(date1.ToString("T", CultureInfo.CreateSpecificCulture("es-ES
您是否尝试改用
DateTime
变量?大概是这样的:
DateTime date1 = new DateTime(2013, 1, 1, 13, 00, 36);
DateTime dateNow = new DateTime.Now;
Console.WriteLine(date1.ToString("T", CultureInfo.CreateSpecificCulture("es-ES")));
// Outputs 6:30:00
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")));
// Outputs Tuesday, January 1, 2013 13:00:36 PM
Console.WriteLine(dateNow.ToString());
// Outputs the current date/time
然后,您可以创建另一个DateTime并将它们作为DateTime
变量而不是字符串进行比较,尽管您仍然可以使用date1.ToString()函数将值作为字符串输出
更多信息请点击此处:
希望有帮助。您可以使用和,如下所示
string value = "13:00:36";
DateTime dt;
if (DateTime.TryParseExact(value, "HH:mm:ss", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
if (dt.TimeOfDay > DateTime.Now.TimeOfDay)
{
// greater than actual time
}
else
{
// smaller than actual time
}
}
由于您有字符串格式的时间,因此很难进行比较。您可以通过提供正确的格式字符串将其转换为Datetime。现在您有了两个DateTime对象,您可以通过TimeOfDay
属性获取这些对象的时间并进行比较。使用以下代码获取时间字符串作为DateTime实例:
DateTime DateT = new DateTime.Now;
string Myvariable = "13:00:36";
DateTime parsedTime = DateTime.ParseExact(
Myvariable,
"HH:mm:ss",
CultureInfo.InvariantCulture);
parsedTime
将具有字符串变量中给定的时间成分(小时、分钟、秒),但它将具有不同的日期。字符串中不存在年、月和日组件,因此它们将默认为日期DateTime.MinValue.date
。为了正确比较,您需要只比较时间部分:
bool isParsedGreater = parsedTime.Hours > DateT.Hours
&& parsedTime.Minutes > DateT.Minutes
&& parsedTime.Seconds > DateT.Seconds;
我想喝杯咖啡。。。请先读。嗯……咖啡@Marco,您需要使用各种常用方法之一(Google it)将字符串变量转换为DateTime,然后进行比较…但是,我如何将日期时间中的变量(如“2013-06-03 13:00:36”)与另一个日期时间变量(如“13:00:36”)进行比较?或者创建一个仅包含该日期的日期时间,然后只添加时间部分,以便可以将它们作为日期时间进行比较;或者只提取时间部分并将它们进行比较,如@Damith所示。不过,上面有更有效的解决方案。我在想别的事情。
bool isParsedGreater = parsedTime.Hours > DateT.Hours
&& parsedTime.Minutes > DateT.Minutes
&& parsedTime.Seconds > DateT.Seconds;