SORU
26 Aralık 2010, Pazar


Nasıl Java Tarih aralığı arasında dolaşmak için?

Ben yazmadım başlangıç tarihi belirli bir tarih aralığı ile eylemleri gerçekleştirmesini istiyorum ve bitiş tarihi. Bana bu kullanarak Java ulaşmak için yol gösterici lütfen.

for ( currentDate = starDate; currentDate < endDate; currentDate  ) {



     }

Yukarıdaki kod sadece mümkün olduğunu biliyorum , ama elde etmek istediğim şey göstermek için yapıyorum

CEVAP
26 Aralık 2010, Pazar


JodaTime, ancak bütünlüğü uğruna nice ve/veya API tarafından sağlanan imkanlar isterseniz, burada standart API yaklaşımlar.

java.util.Date ile başlayan durumlar aşağıdaki gibi:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = formatter.parse("2010-12-20");
Date endDate = formatter.parse("2010-12-26");

Java8 üzerinde gelmedin diye: işte java.util.Calendar yaklaşım mirası

Calendar start = Calendar.getInstance();
start.setTime(startDate);
Calendar end = Calendar.getInstance();
end.setTime(endDate);

for (Date date = start.getTime(); start.before(end); start.add(Calendar.DATE, 1), date = start.getTime()) {
    // Do your job here with `date`.
    System.out.println(date);
}

Ve burada Java8 java.time.LocalDate yaklaşımı, temelde tam olarak JodaTime yaklaşım:

LocalDate start = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate end = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

for (LocalDate date = start; date.isBefore(end); date = date.plusDays(1)) {
    // Do your job here with `date`.
    System.out.println(date);
}

Yineleme yapmak istersenizherşey dahilson tarih sırasıyla !start.after(end) !date.isAfter(end) kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • LearnKey

    LearnKey

    19 AĞUSTOS 2008
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006