การตรวจสอบปีงบประมาณของไทย

ปีงบประมาณของราชการไทย จะเริ่มต้นเมื่อ 1 ตุลาคม ไปจนถึง 30 กันยายน ของทุกปีครับ ทำให้การคำนวณว่าเวลาที่กำหนดจะอยู่ในปีใด อาจปวดหัวสำหรับหลายคน เรามาลองดูวิธีคิดแบบง่ายๆกันครับ
<?php
function fiscalYear($date) {
   // วันที่ที่ต้องการตรวจสอบ
   list($year, $month, $day) = explode("-", $date);
   // วันที่ที่ส่งมา (mktime)
   $cday = mktime(0, 0, 0, $month, $day, $year);
   // ปีงบประมาณตามค่าที่ส่งมา (mktime)
   $d1 = mktime(0, 0, 0, 10, 1, $year);
   // ปีใหม่
   $d2 = mktime(0, 0, 0, 1, 1, $year + 1);
   if ($cday >= $d1 && $cday < $d2) {
     // 1 ตค. - 31 ธค.
     $year++;
   }
   echo "$date = $year <br>";
}
fiscalYear('2011-01-01'); // 2011
fiscalYear('2011-09-30'); // 2011
fiscalYear('2011-10-01'); // 2012
fiscalYear('2011-10-02'); // 2012
fiscalYear('2011-12-31'); // 2012
fiscalYear('2012-01-01'); // 2012
fiscalYear('2012-09-30'); // 2012
fiscalYear('2012-10-01'); // 2013
fiscalYear('2012-10-02'); // 2013
?>

จริงๆแล้ว โค้ดด้านบนถ้าวาดเส้นออกมาตามวันที่ก็จะทำให้มองภาพได้ง่ายครับ

ปัญหามันจะอยู่ที่เส้นสีแดง ครับ ถ้าช่วงปีนี้เป็น คศ. 2011 นั่นหมายความว่า ระหว่าง 1 มค. 2011 ถึง ก่อน 1 ตค. 2011 จะอยู่ในขอบเขตปีงบประมาณของตัวเอง หรือคือปี 2011 แต่ระหว่างวันที่ 1 ตค. เป็นต้นไปจนถึงสิ้นปี ปีงบประมาณจะเท่ากับปีปัจจุบันบวกด้วย 1 ตามรูปเลยครับ
ผู้เขียน goragod โพสต์เมื่อ 08 มี.ค. 2555 เปิดดู 11,234 ป้ายกำกับ PHP
^