5.00 / 1 oy

Java ile artık yılları (Şubat ayı 29 çeken yılları) bulmak

Bildiğimiz gibi her 4 yılda bir Şubat ayı 29 gün çeker, bu da her yıldan artan 6 saatin dört yılda bir yıla 1 gün olarak eklenmesinden kaynaklanır. Java ile artık yılları tespit etmek için iki farklı yol izleyebiliriz. Bu yollardan birisi

Calendar sınıfını kullanarak bir yılın kaç gün olduğunu hesaplayan bir metod tanımlayabiliriz, ya da 

Artık yıl kontrol hesabını yapabiliriz. Bu hesaba göre bir yıl:

4'e kalansız bölünebiliyorsa VE 100'e kalansız bölünemiyorsa VE 400'e kalansız bölünebiliyorsa artık yıldır. Şimdi her iki yöntemi de kullanarak Java'da artık yılları nasıl bulabileceğimizi inceleyelim. Her iki yöntem ile de 1990 ile 2030 yılları arasındaki tüm yılların artık yıl olup olmadıklarına bakalım.

 

1. Yol: Calendar sınıfını kullanarak bir yılın kaç gün olduğuna bakmak

public static void main(String[] args) {

    for (int i=1990; i<=2030; i++)
    {
    	if (artikYilKontrolu(i))
    		System.out.println(i+" Şubat ayı 29 gün çeker");
    }
}


public static boolean artikYilKontrolu(int yil) {
  Calendar takvim = Calendar.getInstance();
  takvim.set(Calendar.YEAR, yil);
  return takvim.getActualMaximum(Calendar.DAY_OF_YEAR) > 365;
}

Çıktı:

1992 Şubat ayı 29 gün çeker
1996 Şubat ayı 29 gün çeker
2000 Şubat ayı 29 gün çeker
2004 Şubat ayı 29 gün çeker
2008 Şubat ayı 29 gün çeker
2012 Şubat ayı 29 gün çeker
2016 Şubat ayı 29 gün çeker
2020 Şubat ayı 29 gün çeker
2024 Şubat ayı 29 gün çeker
2028 Şubat ayı 29 gün çeker

2. Yol: Artık yıl hesabını kullanmak

public static void main(String[] args) {

	for (int i=1990; i<=2030; i++)
	{
		if (artikYilKontrolu(i))
			System.out.println(i+" Şubat ayı 29 gün çeker");
	}
}



public static boolean artikYilKontrolu(int yil) {
	 if (yil % 4 != 0) 
	    return false;
     else if (yil % 400 == 0) 
	    return true;
     else if (yil % 100 == 0) 
	    return false;
     else 
	    return true;
	  
}

Çıktı:

1992 Şubat ayı 29 gün çeker
1996 Şubat ayı 29 gün çeker
2000 Şubat ayı 29 gün çeker
2004 Şubat ayı 29 gün çeker
2008 Şubat ayı 29 gün çeker
2012 Şubat ayı 29 gün çeker
2016 Şubat ayı 29 gün çeker
2020 Şubat ayı 29 gün çeker
2024 Şubat ayı 29 gün çeker
2028 Şubat ayı 29 gün çeker

 

 

utku33

29.02.2020 00:10

Bu soru 3 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java ile artık yılları (Şubat ayı 29 çeken yılları) bulmak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.