2013-02-26 117 views
0

我试图将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; 

回答

3

问题是TotalMilliseconds超过最大值的int可以容纳。

所以,投它long将罚款这实际上是什么DatePicker.MaxDateexpects

dialog.DatePicker.MaxDate = (long)(DateTime.Now.Date.AddYears(-8) - origin).TotalMilliseconds; 
1
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; 
     } 
相关问题