SORU
21 Temmuz 2010, ÇARŞAMBA


Java iki tarih arasındaki gün farkı?

Bulamadımiki tarih arasındaki gün sayısıbir, rapor ve bir değil, mevcut tarih. Benim parçacığı :

  int age=calculateDifference(agingDate, today);

Burada, calculateDifference yöntem özel bir yöntemdir, agingDate today Date nesneler, sadece açıklama için. Java Forum Thread1 Thread 2 iki makaleleri takip ediyorum. Tek başına bir program gayet iyi çalışıyor. Benim mantık rapor okuma içine bu dahil, alışılmadık fark değerleri alıyorum.

Herkes bana yardımcı olabilir, neden oluyor ve bunu nasıl düzeltebilirim?

DÜZENLEME :

Bir çok Gün gerçek fark daha alıyorum...

public static int calculateDifference(Date a, Date b)
{
    int tempDifference = 0;
    int difference = 0;
    Calendar earlier = Calendar.getInstance();
    Calendar later = Calendar.getInstance();

    if (a.compareTo(b) < 0)
    {
        earlier.setTime(a);
        later.setTime(b);
    }
    else
    {
        earlier.setTime(b);
        later.setTime(a);
    }

    while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR))
    {
        tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR));
        difference  = tempDifference;

        earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
    }

    if (earlier.get(Calendar.DAY_OF_YEAR) != later.get(Calendar.DAY_OF_YEAR))
    {
        tempDifference = later.get(Calendar.DAY_OF_YEAR) - earlier.get(Calendar.DAY_OF_YEAR);
        difference  = tempDifference;

        earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
    }

    return difference;
}

Şimdiden teşekkürler...

Not :

Ne yazık ki, cevap bu şekilde alamadım. Joda-time kütüphane yardımı ile this problem başardığım.

CEVAP
21 Temmuz 2010, ÇARŞAMBA


Kusurlu java yerine Joda Time mükemmel kütüphane kullanmanızı öneririm.açıklama.Tarih ve arkadaş. Sadece yazabilirsiniz

import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;

Date past = new Date(110, 5, 20); // June 20th, 2010
Date today = new Date(110, 6, 24); // July 24th 
int days = Days.daysBetween(new DateTime(past), new DateTime(today)).getDays(); // => 34

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011