2017-08-29 96 views
1

我想使日曆顯示特定月份,我想在日曆如何設置日期選取器對話框最大日期和minmum日期

DateTime today = DateTime.Today; 
DatePickerDialog dateDialog = new DatePickerDialog(this, this.OnToDateSet, today.Year, today.Month - 1, today.Day); 
dateDialog.DatePicker.MaxDate = DateTime.Today.Millisecond; 
dateDialog.DatePicker.MinDate = new DateTime(today.Year, today.Month - 2, today.Day).Millisecond; 
dateDialog.Show(); 

這個定義允許的日期範圍是什麼,我進去返回......它顯示&一個月錯誤年當它出現

如果我註釋掉的maxDate和MINDATE然後日曆右側的年份和月份打開

enter image description here

有人請澄清

+0

https://stackoverflow.com/questions/16749361/how-set-maximum-date-in-的可能的複製datepicker-dialog-in-android – Mandy8055

+0

可能的重複[如何在android中的datepicker對話框中設置最大日期?](https://stackoverflow.com/questions/16749361/how-set-maximum-date-in-datepicker-dialog- in-android) –

+0

我不確定這一點,但是在其他框架下,我必須在選擇日期後寫一張支票,如果它超出限制範圍,我不會讓它們保存它。 –

回答

1

這是我得到的回報......它顯示&一個月錯誤年當它出現

如果我註釋掉的maxDate和MINDATE然後日曆右側年開月

如果你調試你的代碼,你會發現DateTime.Today.Millisecondnew DateTime(today.Year, today.Month - 2, today.Day).Millisecond返回0.這就是出問題的地方。在Xamarin,如果你想獲得毫秒,你需要做一個DateTime抵消:

DateTime today = DateTime.Today; 
DatePickerDialog dateDialog = new DatePickerDialog(this, this, today.Year, today.Month - 1, today.Day); 
//DateTime.MinValue isn't 1970/01/01 so we need to create a min date manually 
double maxSeconds = (DateTime.Today - new DateTime(1970, 1, 1)).TotalMilliseconds; 
double minSeconds = (new DateTime(today.Year, today.Month - 2, today.Day) - new DateTime(1970, 1, 1)).TotalMilliseconds; 
dateDialog.DatePicker.MaxDate = (long)maxSeconds; 
dateDialog.DatePicker.MinDate = (long)minSeconds; 
dateDialog.Show(); 
+0

感謝您的回答!你能解釋我..請問關於DateTimeOffiset嗎?它令我困惑 –

+0

爲了讓日曆顯示當前月份...我必須減去一個月..這是不對的?請參閱DatePickerDialog dateDialog = new DatePickerDialog(this,this.OnToDateSet,today.Year,today.Month - 1,today.Day);' –

+0

減少一個月讓日曆顯示當前月份對我來說沒有意義...這個月是從0開始還是什麼的 –

相關問題