Resmi Tatil Günleri.
12
●934
- 19-05-2023, 12:48:05İlgili kod üzerinde bir değişiklik yaptım, o gün ilgili gün gelmiş ise toas ile bir uyarı verecektir ilgili günün geldiğiyle alakalı olarak.

<?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ı Birinci Gün", "Eid al-Fitr Second Day" => "Ramazan Bayramı İkinci 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ı Birinci Gün", "Eid al-Adha Second Day" => "Kurban Bayramı İkinci Gün", "Eid al-Adha Third Day" => "Kurban Bayramı Üçüncü Gün", "Eid al-Adha Fourth Day" => "Kurban Bayramı Dördüncü 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); } 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; } $simdikiTarih = date('Y-m-d'); $isHolidayToday = false; $holidayName = ''; if (!empty($veri)) { foreach ($veri as $tatil) { if ($tatil['date'] === $simdikiTarih) { $isHolidayToday = true; $holidayName = cevirTatil($tatil['name']); break; } } } if ($isHolidayToday) { 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($holidayName, ENT_QUOTES, 'UTF-8') . " tatili');"; echo "});"; echo "</script>"; } 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>"; } } ?> - 19-05-2023, 13:46:19Üyeliği durdurulduNacizane ufak birkaç güncelleme yaptım. Güncellemelerle kod daha modüler, okunabilir ve PSR-2 standartlarına uygun hale gelir.
<?php class ResmiTatilGunleriAPI { private string $apiUrl; private array $veri; public function __construct() { $this->apiUrl = "https://date.nager.at/api/v2/publicholidays/" . date('Y') . "/tr"; $this->veri = $this->fetchData(); } private function fetchData(): array { $response = file_get_contents($this->apiUrl); return json_decode($response, true); } private function cevirTatil(string $tatilAdi): string { $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ı Birinci Gün", "Eid al-Fitr Second Day" => "Ramazan Bayramı İkinci 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ı Birinci Gün", "Eid al-Adha Second Day" => "Kurban Bayramı İkinci Gün", "Eid al-Adha Third Day" => "Kurban Bayramı Üçüncü Gün", "Eid al-Adha Fourth Day" => "Kurban Bayramı Dördüncü Gün" ]; return $ceviriTablosu[$tatilAdi] ?? $tatilAdi; } private function cevirAy(int $ayAdi): string { // date('d F', strtotime($tatil['date'])); // date('n') bir ayın sayısal temsili, ay değeri 1 ile 12 arasında tam sayıdır // Örneğin, bugünün tarihi 19 Mayıs 2023 ise, date('n') ifadesi "5" değerini döndürecektir. $ceviriTablosu = [ 1 => "Ocak", 2 => "Şubat", 3 => "Mart", 4 => "Nisan", 5 => "Mayıs", 6 => "Haziran", 7 => "Temmuz", 8 => "Ağustos", 9 => "Eylül", 10 => "Ekim", 11 => "Kasım", 12 => "Aralık" ]; return $ceviriTablosu[$ayAdi] ?? ''; } public function tatilGunleri(): array { // dizisindeki tatilleri filtreleyerek bugünkü tarihten sonraki tatilleri seçer // array_map fonksiyonunu kullanarak her tatil için tarih ve isim bilgisini dönüştürerek $tatilFilter = array_filter($this->veri, function ($tatil) { return $tatil['date'] >= date('Y-m-d'); }); $tatilGunleri = array_map(function ($tatil) { return [ 'date' => $this->cevirAy(date('n', strtotime($tatil['date']))), 'name' => $this->cevirTatil($tatil['name']) ]; }, $tatilFilter); return $tatilGunleri; } } // Örnek kullanım $resmiTatilGunleri = new ResmiTatilGunleriAPI(); $tatilGunleri = $resmiTatilGunleri->tatilGunleri(); if (!empty($tatilGunleri)) { echo "<strong>" . date('Y') . " Resmi Tatil Günleri:</strong><br>"; foreach ($tatilGunleri as $tatil) { echo "<strong>" . $tatil['date'] . "</strong> - " . $tatil['name'] . "<br>"; } } else { echo "Resmi tatil günleri alınamadı."; } - 19-05-2023, 14:08:26Biraz 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(); ?>
