2016-03-24 16 views
-2

birthDate ist der Typ java.util.Date. Wie berechnet man am besten das aktuelle Alter? Ich möchte eine java.util.Date Variable speichern TODAY - birthDate.Wie lange kann ich nach einem Geburtsdatum das aktuelle Alter berechnen?

+5

Haben Sie etwas noch versucht? –

+0

Was hast du probiert? Haben Sie untersucht, wie Sie ein Datumsobjekt mit dem aktuellen Datum erhalten? Wenn Sie keinen Computer verwenden, welchen Algorithmus würden Sie verwenden? – KevinO

+0

Ein 'java.util.Date' repräsentiert einen Moment auf der Timeline. Per Definition kann es also keine Zeitspanne repräsentieren. Deine Anfrage ist also unmöglich. Schauen Sie sich stattdessen das java.time-Framework an, insbesondere die Klasse ['Period'] (http://docs.oracle.com/javase/8/docs/api/java/time/Period.html). –

Antwort

0

Das hängt davon ab, was meinst du mit dem aktuellen Alter.

Wenn Sie die genaue astronomische Bedeutung bedeuten, verwenden

DateTime startDate = new DateTime(2000, 1, 19, 5, 14, 0, 0); 
DateTime endDate = new DateTime(); 
Days d = Days.daysBetween(startDate, endDate); 

Wenn Sie den gesunden Menschenverstand Unterschied müssen, basierend auf den beiden in ganzen Tagen angegebenen Daten:

long thisDay = (new Date()).getTime()/(1000 * 60 * 60 * 24); 

DateFormat formatter = new SimpleDateFormat("dd-MMM-yy"); 
Date birthDate = formatter.parse("11-June-07"); 

long birthdayInDays = birthDate.getTime()/(1000 * 60 * 60 * 24); 
long dayDiff = thisDay - birthdayInDays; 
+0

tnx, aber wie kann ich von diesem ('dayDiff' oder' d') zu einer Variablen vom Typ Date gehen? – David

+0

Werfen Sie einen Blick auf diesen Beitrag: http://StackOverflow.com/Questions/1116123/How-Do--Calculate-Someones-age-in-Java – JYA

+0

@David, Unterschied der Daten ist kein Datum selbst. Ein Datum hat zum Beispiel Schaltjahre. Unterschied der Daten hat es nicht. – Gangnus

Verwandte Themen