2014-04-11 16 views
5

Bir datepicker kullanıyorum ve bugünün tarihini ve maksimum tarihi bugün bir yıl öncesine ayarlamak istiyorum.Datepicker istisnalar arasında değil zaman verir

böyle yapın:

datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
      cal.add(Calendar.YEAR, 1); 
      datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis()); 

ben yapmıyorum zaman - 1000 sonra başka istisna olsun:

java.lang.IllegalArgumentException: fromDate: Sat Apr 11 23:59:59 CEST 2015 does not precede toDate: Sat Apr 11 08:24:19 CEST 2015 

Thats tarihi bugünden eşit olmayabilir çünkü. Yani 1000 ms çıkarırım.

Yeni istisnayı nasıl çözeceğimi bilmiyorum. MaxDate üzerinde + 1000 ms saymaya çalıştım ama bunu çözmedi.

DÜZENLEME:

Bu gibi benim cal oluşturun: MinDateMaxDate daha yüksektir gibi

cal = Calendar.getInstance(); 
     datePickerDialog = new DatePickerDialog(getActivity(), this, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE)); 

cevap

13

Ben sorunu çözüldü:

  cal.set(Calendar.HOUR_OF_DAY, cal.getMinimum(Calendar.HOUR_OF_DAY)); 
      cal.set(Calendar.MINUTE, cal.getMinimum(Calendar.MINUTE)); 
      cal.set(Calendar.SECOND, cal.getMinimum(Calendar.SECOND)); 
      cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND)); 
      datePickerDialog.getDatePicker().setMinDate(cal.getTimeInMillis()); 
      cal.add(Calendar.YEAR, 1); 
      cal.set(Calendar.HOUR_OF_DAY, cal.getMaximum(Calendar.HOUR_OF_DAY)); 
      cal.set(Calendar.MINUTE, cal.getMaximum(Calendar.MINUTE)); 
      cal.set(Calendar.SECOND, cal.getMaximum(Calendar.SECOND)); 
      cal.set(Calendar.MILLISECOND, cal.getMaximum(Calendar.MILLISECOND)); 
      datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis()); 

Sadece minimum ve o gün kapalı maksimum bitiş tarihine başlangıç ​​tarihi ayarlayın.

+0

Bu benim sorunumu çözüyor ama ne zaman ben de süreyi korumak istiyorsam başka bir takvim örneği oluşturmam ve ayrı ayrı yönetmem gerekiyor? – ANinJa

2

görünüyor. Istisnai olarak.

+0

Evet bunu biliyorum ama nasıl düzelteceğimi bilmiyorum. Denediğim şey her zaman başarısız olur. – user1007522

+0

, minDate, 2014 yerine 2014'te. SetMinDate –

0

bu deneyin: aşağıdaki gibi

cal.set(Calendar.HOUR_OF_DAY, 0); 
    cal.set(Calendar.MINUTE, 0); 
    cal.set(Calendar.SECOND, 0); 
    cal.set(Calendar.MILLISECOND, 0); 
    datePickerDialog.getDatePicker().setMinDate(cal.getTimeInMillis()); 
    cal.add(Calendar.YEAR, 1); 
    datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis()); 
+1

için 'cal.getTimeInMillis()', bunu denedi ve farketmez. – user1007522

+0

@ user1007522 Takviminizi nasıl oluşturuyorsunuz? – fRoStBiT

+0

Düzenlenmiş cevabımı kontrol et. – user1007522

İlgili konular