Biraz daha sadeleştirilmiş hale getirdim. @
vido teşekkür ederim.
<?php
class TatilKontrolcu {
private $ceviriTablosu;
public function __construct() {
$this->ceviriTablosu = [
"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ı 3. 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"
];
}
private function cevirTatil( $tatilAdi ) {
return isset( $this->ceviriTablosu[ $tatilAdi ] ) ? $this->ceviriTablosu[ $tatilAdi ] : $tatilAdi;
}
private function cevirAy( $ayAdi ) {
$ceviriTablosu = [
"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 = [];
foreach ( $ayParcalari as $parca ) {
$cevrilmisParcalar[] = isset( $ceviriTablosu[ $parca ] ) ? $ceviriTablosu[ $parca ] : $parca;
}
return implode( ' ', $cevrilmisParcalar );
}
private function cevirHaftaGunu( $haftaGunu ) {
$ceviriTablosu = [
"Monday" => "Pazartesi", "Tuesday" => "Salı", "Wednesday" => "Çarşamba", "Thursday" => "Perşembe",
"Friday" => "Cuma", "Saturday" => "Cumartesi", "Sunday" => "Pazar"
];
return isset( $ceviriTablosu[ $haftaGunu ] ) ? $ceviriTablosu[ $haftaGunu ] : $haftaGunu;
}
public function tatilleriKontrolEt() {
$apiUrl = "https://date.nager.at/api/v2/publicholidays/" . date( 'Y' ) . "/tr";
$response = file_get_contents( $apiUrl );
$veri = json_decode( $response, true );
$simdikiTarih = date( 'Y-m-d' );
$bugunTatilMi = false;
$tatilAdi = '';
if ( !empty( $veri ) ) {
foreach ( $veri as $tatil ) {
if ( $tatil[ 'date' ] === $simdikiTarih ) {
$bugunTatilMi = true;
$tatilAdi = $this->cevirTatil( $tatil[ 'name' ] );
break;
}
}
}
if ( $bugunTatilMi ) {
echo "<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js'></script>";
echo "<link href='https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css' rel='stylesheet' />";
echo "<script src='https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js'></script>";
echo "<script>";
echo "jQuery(document).ready(function() {";
echo " toastr.success('Bugün: " . htmlentities( $tatilAdi, ENT_QUOTES, 'UTF-8' ) . " tatili');";
echo "});";
echo "</script>";
}
echo "<strong>" . date( 'Y' ) . " Resmi Tatil Günleri:</strong><br>";
foreach ( $veri as $tatil ) {
$cevrilmisAd = $this->cevirTatil( $tatil[ 'name' ] );
$tatilTarihi = date( 'd F', strtotime( $tatil[ 'date' ] ) );
$cevrilmisTarih = str_replace( [ 'May', 'June' ], [ 'May', 'Haziran' ], $this->cevirAy( $tatilTarihi ) );
$haftaGunu = date( 'l', strtotime( $tatil[ 'date' ] ) );
$cevrilmisHaftaGunu = $this->cevirHaftaGunu( $haftaGunu );
if ( $tatil[ 'date' ] >= $simdikiTarih ) {
echo "<strong>" . $cevrilmisTarih . " " . $cevrilmisHaftaGunu . "</strong> - " . $cevrilmisAd . "<br>";
}
}
}
}
$tatilKontrolcu = new TatilKontrolcu();
$tatilKontrolcu->tatilleriKontrolEt();
?>