Soru
Programcıya bir yıl (girilenYil) veriliyor ve ondan bu yılın kaçıncı yüzyıla ait olduğunu (İngilizce’ye uygun olarak) bulan bir metot oluşturması isteniyor.
Örnek
Girdi | Çıktı |
---|---|
girilenYil: 1999 | Mevcut Yüzyıl: 20th |
girilenYil: 2000 | Mevcut Yüzyıl: 20th |
girilenYil: 2011 | Mevcut Yüzyıl: 21st |
girilenYil: 2154 | Mevcut Yüzyıl: 22nd |
girilenYil: 2259 | Mevcut Yüzyıl: 23rd |
girilenYil: 1124 | Mevcut Yüzyıl: 12th |
Çözüm - C#
using System;
class Program
{
public static void Main()
{
string girilenYil = "2004";
string sonuc = Yuzyil(girilenYil);
Console.WriteLine($"Mevcut Yüzyıl: {sonuc}");
Console.Read();
}
public static string Yuzyil(string girilenYil)
{
double yil = double.Parse(girilenYil);
// Mevcut yılı 100'e bölerek ondalık halini elde et (Örn. 2004/100=20.04)
double ondalik = yil / 100;
// ondalıklı değeri, kendisinin üstündeki sayıya yuvarlayarak döndür
double sayi = Math.Ceiling(ondalik);
// Eğer sayı aralıkları 11 ve 13 arasında ise th eki ekle
if (sayi >= 11 && sayi <= 13)
return sayi + "th";
// sayı 10'a bölündüğünde kalan sayısına göre ekleri ekle
switch (sayi % 10)
{
case 1:
return sayi + "st";
case 2:
return sayi + "nd";
case 3:
return sayi + "rd";
}
// Diğer seçeneklerde th eki ekle
return sayi + "th";
}
}