2016-04-12 34 views
0

Java'daki tarihe kadar olan günleri çıkarmak istiyorum. Ama ben harici kütüphaneleri kullanmak istemiyorum. Stackoverflow'tan bazı sorular yönelttim ancak dış kütüphaneleri kullanmaları öneriliyor. Bu yüzden O beklenmeyen bir sonuç veriyor 24 gün sonra 24 days.but kadar iyi çalışıyorŞu andan itibaren çıkardığınız günler mevcut değil.

noOfDays = 24; 
Date compareDate = new Date(currentDate - noOfDays * 24 * 60 * 60 * 1000); 
System.out.println("compare date " + compareDate); 

mantığı aşağıdaki uyguladık. Bunun herhangi bir çözümü var mı ?

+3

Kullanım java.util.Calendar – Jens

+0

joda istemiyoruz ΦXoce 웃 Пepeúpa OP @ en iyi burada arkadaşı –

+1

olabilir üçüncü parti libs kullanmak için – Jens

cevap

4

java.util.Calendar'u kullanın. Böyle şey:

Calendar c = new Calendar() 
c.setTime(currentDate); 
c.add(Calendar.DAY_OF_MONTH, noOfDays) 
compareDate = c.getTime() 
+0

Teşekkürler @Jens. Sorunumu çözdü. – sdk

0

Sen hesaplama maksimum tamsayı değeri daha yüksek değerler sığmaz tamsayılar, ilgili. comments söylediği gibi

long noOfDays = 24; 
Date compareDate = new Date(currentDate - noOfDays * 24 * 60 * 60 * 1000); 
System.out.println("compare date " + compareDate); 

Ancak, bu substracting gün için en iyi yaklaşım değildir, bu yüzden diğer yanıtlar daha iyi çözümlere bir göz:

bir long olarak değişken bildirin.

0

kullanabilirsiniz bir LocalDate (Java 8 yana JDK parçasıdır):

LocalDate today = LocalDate.now(); 
LocalDate compareDate = today.minusDays(24);