Java'da tarihlerle çalışmaya yavaştan başlamadan önce muhtemelen programlama ile haşır neşir olmuş herkesin karşılaştığı bir problem ile konuya girmek istiyorum: ay isimleri. Bazı programlama dillerinde ay isimleri hiç yoktur, bir kısmında ise sadece İngilizce olarak vardır. Bu problemi aşmanın en genel yolunu ve Java kullanarak nasıl yapabileceğimizin optimal çözümünü paylaşacağım.
1. Çözüm: Ay ismini getiren bir metod yazmak
Uzun uzun ef-else if blokları içinde eğer ay şuysa adı da budur demek yerine bir vektör tanımlayalım ve sıfırdan başlayan bir indisleme ile istediğimiz ayın ismini bu şekilde çağıralım (Ocak ayının artık sıfırıncı ay, Aralık ayının da 11. ay olduğunu atlamayalım)
public static void main(String[] args) {
for (int i=0; i<12; i++)
System.out.println(AyAdiniGetir(i));
}
public static String AyAdiniGetir(int ay){
String[] aylar = {"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"};
return aylar[ay];
}
Çıktı:
Ocak
Şubat
Mart
Nisan
Mayıs
Haziran
Temmuz
Ağustos
Eylül
Ekim
Kasım
Aralık
Çözüm 2: Java'da tarihlerle çalışacaksak aşağıdaki sınıfları ve kullanımlarını anlamaya başlamamız gerek:
import java.text.SimpleDateFormat;
import java.util.Calendar;
Geçelim daha basit olan çözümümüze.
for (int i=0; i<12; i++)
{
Calendar takvim = Calendar.getInstance();
takvim.set(Calendar.MONTH, i);
System.out.println(new SimpleDateFormat("MMMM").format(takvim.getTime()));
}
Çıktı:
Ocak
Şubat
Mart
Nisan
Mayıs
Haziran
Temmuz
Ağustos
Eylül
Ekim
Kasım
Aralık