Arkadaşın isteğine göre haftanın gününü de gösteren şekilde düzenlenmiştir. 2024 yılına girince baştan başlar ve o gün geçtiğinde ilgili gün listeden kalkar.
<?php
$apiUrl = "https://date.nager.at/api/v2/publicholidays/" . date( 'Y' ) . "/tr";
$response = file_get_contents( $apiUrl );
$veri = json_decode( $response, true );

function cevirTatil( $tatilAdi ) {
  // Çeviri tablosu
  $ceviriTablosu = array(
    "New Year's Day" => "Yılbaşı",
    "Labour Day" => "Emek ve Dayanışma Günü",
    "Easter Monday" => "Paskalya Pazartesi",
    "Republic Day" => "Cumhuriyet Bayramı",
    "Victory Day" => "Zafer Bayramı",
    "Youth and Sports Day" => "Gençlik ve Spor Bayramı",
    "Democracy and National Unity Day" => "Demokrasi ve Milli Birlik Günü",
    "Sacrifice Feast" => "Kurban Bayramı",
    "Eid al-Fitr First Day" => "Ramazan Bayramı 1. Gün",
    "Eid al-Fitr Second Day" => "Ramazan Bayramı 2. Gün",
    "National Independence & Children's Day" => "Ulusal Egemenlik ve Çocuk Bayramı",
    "Eid al-Fitr Third Day" => "Ramazan Bayramı Üçüncü Gün",
    "Atatürk Commemoration & Youth Day" => "Atatürk'ü Anma Gençlik ve Spor Bayramı",
    "Eid al-Adha First Day" => "Kurban Bayramı 1. Gün",
    "Eid al-Adha Second Day" => "Kurban Bayramı 2. Gün",
    "Eid al-Adha Third Day" => "Kurban Bayramı 3. Gün",
    "Eid al-Adha Fourth Day" => "Kurban Bayramı 4. Gün"
  );

  if ( isset( $ceviriTablosu[ $tatilAdi ] ) ) {
    return $ceviriTablosu[ $tatilAdi ];
  }

  return $tatilAdi;
}

function cevirAy( $ayAdi ) {
  // Çeviri tablosu
  $ceviriTablosu = array(
    "January" => "Ocak",
    "February" => "Şubat",
    "March" => "Mart",
    "April" => "Nisan",
    "May" => "Mayıs",
    "June" => "Haziran",
    "July" => "Temmuz",
    "August" => "Ağustos",
    "September" => "Eylül",
    "October" => "Ekim",
    "November" => "Kasım",
    "December" => "Aralık",
    "Jan" => "Oca",
    "Feb" => "Şub",
    "Mar" => "Mar",
    "Apr" => "Nis",
    "Jun" => "Haz",
    "Jul" => "Tem",
    "Aug" => "Ağu",
    "Sep" => "Eyl",
    "Oct" => "Eki",
    "Nov" => "Kas",
    "Dec" => "Ara"
  );

  $ayParcalari = explode( ' ', $ayAdi );
  $cevrilmisParcalar = array();
  foreach ( $ayParcalari as $parca ) {
    if ( isset( $ceviriTablosu[ $parca ] ) ) {
      $cevrilmisParcalar[] = $ceviriTablosu[ $parca ];
    } else {
      $cevrilmisParcalar[] = $parca;
    }
  }

  return implode( ' ', $cevrilmisParcalar );
}

$simdikiTarih = date( 'Y-m-d' );
if ( !empty( $veri ) ) {
  echo "<strong>" . date( 'Y' ) . " Resmi Tatil Günleri:</strong><br>";
  foreach ( $veri as $tatil ) {
    $cevrilmisAd = cevirTatil( $tatil[ 'name' ] );
    $tatilTarihi = date( 'd F', strtotime( $tatil[ 'date' ] ) );
    $cevrilmisTarih = str_replace(
      array( 'May', 'June' ),
      array( 'May', 'Haziran' ),
      cevirAy( $tatilTarihi )
    );
    $haftaGunu = date( 'l', strtotime( $tatil[ 'date' ] ) );
    $cevrilmisHaftaGunu = cevirHaftaGunu( $haftaGunu );
    if ( $tatil[ 'date' ] >= $simdikiTarih ) {
      echo "<strong>" . $cevrilmisTarih . " " . $cevrilmisHaftaGunu . "</strong> - " . $cevrilmisAd . "<br>";
    }
  }
} else {
  echo "Resmi tatil günleri alınamadı.";
}

function cevirHaftaGunu( $haftaGunu ) {
  // Çeviri tablosu
  $ceviriTablosu = array(
    "Monday" => "Pazartesi",
    "Tuesday" => "Salı",
    "Wednesday" => "Çarşamba",
    "Thursday" => "Perşembe",
    "Friday" => "Cuma",
    "Saturday" => "Cumartesi",
    "Sunday" => "Pazar"
  );

  if ( isset( $ceviriTablosu[ $haftaGunu ] ) ) {
    return $ceviriTablosu[ $haftaGunu ];
  }

  return $haftaGunu;
}
?>