2016-03-24 31 views
-2

birthDate 'nin türü java.util.Date'dir. Geçerli yaşı hesaplamanın en iyi yolu nedir? TODAY - birthDate depolamak için java.util.Date değişkenini istiyorum.Doğum tarihi verildiğinde, mevcut yaşı nasıl hesaplayabilirim?

+5

Hala bir şey denediniz mi? –

+0

Ne denediniz? Güncel tarihle bir tarih nesnesi nasıl elde edeceğinize baktınız mı? Bilgisayar kullanmıyorsanız, kullanacağınız algoritma nedir? – KevinO

+0

A java.util.Date, zaman çizelgesinde bir anı temsil eder. Dolayısıyla, tanım gereği, geçen sürenin bir açıklığını temsil edemez. Yani isteğin imkansız. Bunun yerine, java.time çerçevesine, özellikle de ['Period'] (http://docs.oracle.com/javase/8/docs/api/java/time/Period.html) sınıfına bakın. –

cevap

0

Bu, yaşınıza göre ne demek istiyorsunuz.

Eğer kesin astronomik bir anlam ifade Eğer bütün gün verilen her iki tarihlere dayalı, sağduyu farkı gerekiyorsa,

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

kullanın:

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, ancak Date (Tarih) türünde bir değişkene (daydiff veya d d) nasıl gidebilirim? – David

+0

Bu gönderiye bir bakın: http://stackoverflow.com/questions/1116123/how-do-i-calculate-someones-age-in-java – JYA

+0

@David, tarihlerin farkı bir tarihin kendisi DEĞİLDİR. Örneğin, bir tarihin yıllara dönüşmesi vardır. Tarihlerin farkı yok. – Gangnus

İlgili konular