正如标题所述,在没有时间和秒数的情况下,与DateTime进行比较的最佳方法是什么?
我不想将我的日期转换为字符串,以及像
这样的解决方案
DateTime.Now.Year == last.Year && DateTime.Now.Month == last.Month && DateTime.Now.Day == last.Day
非常难看。
编辑:天啊,我觉得多么愚蠢。当然,您可以使用Date属性。“另一个问题”:将DateTime与年,月,日,小时,分钟,而不是秒进行比较的最佳方法是什么?
由于
答案 0 :(得分:18)
这是:你在寻找什么?
DateTime.Now.Date
答案 1 :(得分:3)
查看Date属性,然后您可以将dt1.Date与dt2.Date进行比较。
答案 2 :(得分:1)
您可以使用DateTime对象的Date属性。
例如, DateTime dateOne
dateOne.Date属性将仅使用日期部分。
答案 3 :(得分:1)
比接受的答案更简单,你可以简单地使用:
DateTime.Today
答案 4 :(得分:1)
关于没有秒的比较,只需使用:
public static bool EqualsIgnoringSeconds(this DateTime source, DateTime target)
{
return TimeSpan.FromTicks(source.Ticks).TotalMinutes == TimeSpan.FromTicks(target.Ticks).TotalMinutes;
}
答案 5 :(得分:0)
回答“另一个”问题:您可以为DateTime创建扩展名
public static bool EqualsIgnoreSeconds(this DateTime a, DateTime b)
{
// the ugly code
}
然后使用它很漂亮,例如:DateTime.Now.EqualsIgnoreSeconds(b)
答案 6 :(得分:0)
using System;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1.Date, date2.Date);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
}
}
}
这条线至关重要:
int result = DateTime.Compare(date1.Date, date2.Date);