我正在寻找一种根据日期选择器中所选月份计算天数的方法。
我模型中的日期和ID字段定义为:public Nullable<System.DateTime> Date { get; set; }
public int ID { get; set; }
private DateTime _mDate = DateTime.Now;
public DateTime MDate
{
get { return _mDate; }
set
{
if (value == _mDate)
{
return;
}
else if (_selectedTabIndex == 0)
{
_mDate = value;
}
else
{
_mDate = value;
OnPropertyChanged("MDate");
SetDaysCompleted();
}
}
}
private void SetDaysCompleted()
{
int.TryParse(MDate.ToString("MM"), out int month);
DaysCompleted = Convert.ToDecimal(db.MyTable
.Where(a => (a.Date < MDate) && (int.TryParse(a.Date.ToString("MM"), out int smonth) == month))
.Select(a => a.ID).Count());
}
我希望这样的东西可以工作但是我得到一个“没有方法重载'ToString'需要1个参数”错误。有人可以建议我应该如何重写查询,或者是否有更好的方法从所选月份的开头获取行数?谢谢。
答案 0 :(得分:1)
我可能弄错了,但我认为问题出在这里:
public Nullable<System.DateTime> Date { get; set; }
public int ID { get; set; }
首先尝试将Nullable<System.DateTime> Date
转换为System.DateTime Date
,以便能够在其上使用.ToString("MM")
。
代码中的另一个潜在问题可能是:Where(a=>(a.Date < MDate)
。同样,如果我正确理解a.Date
属于DateTime?
类型且无法与DateTime MDate
进行比较