7 Şubat 2012

Java'da Artık Yıl Hesaplamak

Hepimiz 1 yılda 365 gün olduğunu düşünürüz. Ama lisede öğrendiğimiz bilgilere göz attığımızda bu sayının tam olmadığını, aslında Dünya’nın Güneş etrafındaki 1 tam turunu 365 gün 6 saatte tamamladığını hatırlarız.

İşte bu nedenle her dört yılda bir takvime 1 gün eklenir. Yani 4′e tam bölünen yıllarda Şubat ayı 29 çeker. Ancak bu bilgi de özünde eksiktir. Çünkü uzaybilimcilerin hesaplamalarına göre 1 yıl tam olarak 365 gün, 6 saat, 9 dakika ve 9.3 saniyedir. Şu anda kullandığımız Gregoryen takvimde hesabın tutması için şöyle bir yol izlenmiştir:

4′e tam bölünen yıllar artık yıldır.
100′e tam bölünen yıllar artık yıl değildir.
400′e tam bölünen yıllar artık yıldır.
4000′e tam bölünen yıllar artık yıl değildir.

Örneğin, yeni binyıla girdiğimiz 2000 artık yıl olarak kabul edilerek, Şubat ayına 1 gün eklenmiştir. Buna karşılık 1900 yılı artık yıl değildir ve Şubat 28 çekmiştir. Buradan yola çıkarak artık yıl hesaplamasını aşağıdaki gibi yapabiliriz;
public static void main(String[] args) {
 
int girilenYil = 1991;
 
if (((girilenYil % 4) == 0) && ((girilenYil % 100) == 0) && ((girilenYil % 400) == 0) && ((girilenYil % 4000) != 0))
System.out.println(girilenYil + " artık yıldır");
else
System.out.println(girilenYil + " artık yıl değildir.");
 
}
Not : girilenYil adında bir değişken belirledik. Bu değişkene verilen değer klavyeden kullnıcı tarafından değil programcı tarafından girilmektedir.