2017-05-05 1 views
0

내가 원하는 것은 특정 날짜가 사용 중지되기 전에 날짜를 설정하는 것입니다 (오늘 이전이 아님). 예 : :날짜가 오늘 날짜가 아닌 DatePickerDialog에 최소 날짜를 설정하는 방법 (XAMARIN)

오늘은 5 월 5 일 2017입니다. 대상 특정 날짜 : 5 월 1 일 -5 월 5 일.

이 일보다 더 큰

모든이 코드

 dialog.DatePicker.MaxDate = Java.Lang.JavaSystem.CurrentTimeMillis(); 

를 사용 불가능하지만 5 월 1 일에서 그것을하기 전에 비활성화 할 수 없습니다.

지금이 코드가 있습니다.

public class DatePickerFragment : DialogFragment, 
           DatePickerDialog.IOnDateSetListener 
{ 
    // TAG can be any string of your choice. 
    public static readonly string TAG = "X:" + typeof(DatePickerFragment).Name.ToUpper(); 

    // Initialize this value to prevent NullReferenceExceptions. 
    Action<DateTime> _dateSelectedHandler = delegate { }; 

    public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected) 
    { 
     DatePickerFragment frag = new DatePickerFragment(); 
     frag._dateSelectedHandler = onDateSelected; 
     return frag; 
    } 

    public override Dialog OnCreateDialog(Bundle savedInstanceState) 
    { 
     DateTime currently = DateTime.Now; 
     DatePickerDialog dialog = new DatePickerDialog(Activity, 
                 this, 
                 currently.Year, 
                 currently.Month-1, 
                 currently.Day); 

     //****************this is my problem*****************// 
     dialog.DatePicker.MinDate = CurrentUser.lastReplenish.Millisecond; 
     dialog.DatePicker.MaxDate = Java.Lang.JavaSystem.CurrentTimeMillis(); 
     //***************************************************// 
     return dialog; 
    } 

    public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
    { 
     // Note: monthOfYear is a value between 0 and 11, not 1 and 12! 
     DateTime selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth); 
     Log.Debug(TAG, selectedDate.ToLongDateString()); 
     _dateSelectedHandler(selectedDate); 
    } 
} 

I

답변

1

나는 "CurrentUser.lastReplenish"는 .NET DateTime 개체 인 것 같아요! 안드로이드는 항상 1970 년 1 월 1 (시대)부터 밀리 초를 필요, 그래서 당신은 약간의 계산해야합니다 : 그것은 완벽하게 작동 난 그냥 지금 당장 코딩

dialog.DatePicker.MinDate = (long)CurrentUser.lastReplenish.ToUniversalTime() 
    .Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds; 
+0

을! 정말 고맙습니다! :) – jace

관련 문제