2015-08-19 59 views
1

如何仅比较日期列表中的mounth和日期(不是年份)?检查日期列表中是否存在日期

DateTime[] dates= new DateTime[] 
       { 
        new DateTime(DateTime.Now.Year, 1, 1), 
        new DateTime(DateTime.Now.Year, 5, 1), 
        new DateTime(DateTime.Now.Year, 5, 8) 
       }; 
// Result 
DateTime date_1 = new DateTime(2016, 1, 1); // OK 
DateTime date_2 = new DateTime(2022, 1, 1); // OK 
DateTime date_3 = new DateTime(2016, 1, 2); // KO 
DateTime date_4 = new DateTime(2016, 1, 3); // KO 

回答

4

您可以使用IEnumerable extension Any来检查,如果您的数组包含所需的月和日的日期

DateTime date_1 = new DateTime(2016, 1, 1); 
bool exist = dates.Any (d => d.Month == date_1.Month && d.Day == date_1.Day); 
Console.WriteLine(exist); 

DateTime date_3 = new DateTime(2016, 1, 2); 
exist = dates.Any (d => d.Month == date_3.Month && d.Day == date_3.Day); 
Console.WriteLine(exist); 

当然需要使用System.Linq的

3

只是比较了一个月,日期部分:

DateTime date = new DateTime(2016, 1, 1); 
DateTime date2 = new DateTime(2017, 1, 1); 
if (date.Day == date2.Day && date.Month == date2.Month) 
{ 
    // Same 
} 
相关问题