如何在DatePickerDialog中设置最小和最大日期?
问题描述:
我试图将1900和maxdate设置为1997到DatePickerDialog。但无论我尝试什么,对话的结果都不是它应该是的。该文件说,它应该是自1970年以来的毫秒数。所以这个代码应该工作。如何在DatePickerDialog中设置最小和最大日期?
我错过了什么?
var dialog = new DatePickerDialog(this, (ss, ee) =>
{
var dateSelected = ee.Date;
}, model.Birthday.Year, model.Birthday.Month - 1, model.Birthday.Day);
var origin = new DateTime(1970, 1, 1);
dialog.DatePicker.MinDate = 0;// (int)(DateTime.Now.Date.AddYears(-120) - origin).TotalMilliseconds;
dialog.DatePicker.MaxDate = (int)(DateTime.Now.Date.AddYears(-8) - origin).TotalMilliseconds;
答
问题是TotalMilliseconds
超过最大值的int
可以容纳。
所以,投它long
将罚款这实际上是什么DatePicker.MaxDate
expects。
dialog.DatePicker.MaxDate = (long)(DateTime.Now.Date.AddYears(-8) - origin).TotalMilliseconds;
答
protected override Dialog OnCreateDialog(int id)
{
switch (id)
{
case DATE_DIALOG_ID:
DatePickerDialog dialog = new DatePickerDialog(this, OnDateSet, date.Year, date.Month - 1, date.Day);
string _gs = servis.gosterilecekRandevuGunSuresi();
int _guns = Convert.ToInt32(_gs);
DateTime origin = new DateTime(1970, 1, 1);
string tarih = origin.Date.ToString("dd.MM.yyyy");
DateTime dt = Convert.ToDateTime(tarih);
var datetime = Convert.ToDateTime(tarih);
long sayi = (long)(DateTime.Now.Date - origin.Date).TotalMilliseconds;
long sayi2 = (long)(DateTime.Now.Date.AddDays(_guns) - origin).TotalMilliseconds;
dialog.DatePicker.MinDate = sayi;
dialog.DatePicker.MaxDate = sayi2;
return dialog;
}
return null;
}