2016-07-20 12 views
-1

Szenario:Anzahl der Tage benötigen basierend auf einer Differenz von zwei Daten

Mein Ergebnis = Berichterstellung Datum - Besucht Datum

Beispiel:

Berichterstellungsdatum ist: 20/07/2016

Wenn besucht Datum ist 19/07/2016 - Ergebnis 0, wenn Besucht Datum 18/07/2016 ist - Ergebnis ist 1, wenn Besucht Datum 17/07/2016 ist - Ergebnis 2 usw.

+5

und was hält Sie an? bitte, kopiere nicht einfach deine Aufgabe hier. Zeigen Sie uns zumindest, was Sie versucht haben und was (nicht) funktioniert – Stultuske

+0

Siehe http://stackoverflow.com/questions/7103064/java-calculate-the-number-of-days-between-two -dates –

Antwort

0

Probieren Sie diese

public static void main(String []args) { 
    System.out.println(System.currentTimeMillis()); 
    System.out.println(new Date()); 
    Map<TimeUnit,Long> result = computeDiff(
      new Date("7/20/2016"), 
     new Date("8/20/2016") 
    ); 
    System.out.println(result); 
} 

public static Map<TimeUnit,Long> computeDiff(Date date1, Date date2) { 

    long diffInMillies = date2.getTime() - date1.getTime(); 
    List<TimeUnit> units = new ArrayList<TimeUnit>(EnumSet.allOf(TimeUnit.class)); 
    Collections.reverse(units); 

    Map<TimeUnit,Long> result = new LinkedHashMap<TimeUnit,Long>(); 
    long milliesRest = diffInMillies; 
    for (TimeUnit unit : units) { 
     long diff = unit.convert(milliesRest,TimeUnit.MILLISECONDS); 
     long diffInMilliesForUnit = unit.toMillis(diff); 
     milliesRest = milliesRest - diffInMilliesForUnit; 
     result.put(unit,diff); 
    } 
    return result; 
} 

}

+0

Danke für den Code ..... Ausgang ist wie ..... {TAGE = 1, STUNDEN = 0, MINUTEN = 0, SEKUNDEN = 0, MILLISECONDS = 0, MICROSECONDS = 0, NANOSECONDS = 0 }. Aber ich möchte nur Tage Wert ... wie 1 .. so pls suggerieren Sie mir/geben Sie den Code. – Sateesh

+0

add break statment für for loop.so es wird nur Tage Wert zurückgeben. –

+0

geben Put wie {DAYS = 7} ... Aber ich will nur ... 7 .. Wie bekomme ich das? – Sateesh