LINQ中判断日期时间段

1)转换日期格式为DateTime类型

DateTime dtToday = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));//今天
DateTime dtNexDay = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"));//明天
DateTime dtMonthFirstday = Convert.ToDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).ToString("yyyy-MM-dd"));//本月
DateTime dtThreeMonth = Convert.ToDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-3).Month, 1).ToString("yyyy-MM-dd"));//3个月前
DateTime dtYearFirstday = Convert.ToDateTime(new DateTime(DateTime.Now.Year, 1, 1).ToString("yyyy-MM-dd"));//今年

2)使用LINQ判断日期

var query = db.Query<UserInfo>().Where(c=>c.Date>dtToday&&c.Date<dtNexDay)


PS:一般判断方法,使用DateTime的Compare方法

  string startTime = db.UserInfo.FirstOrDefault().StartTime;
  string endTime = db.UserInfo.FirstOrDefault().EndTime;

  DateTime startDT = Convert.ToDateTime(startTime);
  DateTime endDT = Convert.ToDateTime(endTime);

  DateTime nowDT = DateTime.Now;

  if(DateTime.Compare(nowDT,startDT ) > 0 && DateTime.Compare(nowDT,endDT )< 0)
  {
    ConSole.WriteLine("现在处于startTime 和endTime 之间的时间段");
  }

 

原文地址:https://www.cnblogs.com/HansZimmer/p/9239929.html