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;
}
?>