在.NET实体框架LINQ查询中按周比较两个日期?

时间:2011-02-24 11:57:01

标签: c# linq entity-framework

是否有一种简单的方法可以比较像这样的两个日期......

var times = (from d in db.TimeSet
             where d.EventDate.Week) == DateTime.ThisWeek &&                         
             d.Employee.Username == username
             select d).ToList();

1 个答案:

答案 0 :(得分:1)

public static int GetWeekNumber(DateTime date)
{
        CultureInfo ci = CultureInfo.CurrentCulture;
        int weekNum = ci.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
        return weekNum;
}

var times = (from d in db.TimeSet
             where GetWeekNumber(d.EventDate) == GetWeekNumber(DateTime.Now) &&                         
             d.Employee.Username == username
             select d).ToList();

您可能需要查看CalendarWeekRule以选择符合您需求的那个。