網頁

2014年4月25日

[php] 閏年及平年計算方式

PHP計算閏年及平年有兩種方式。

方式一:
依照維基百科敘述閏年規則如下:
西元年份除以400可整除,為閏年。
西元年份除以4可整除但除以100不可整除,為閏年。
西元年份除以4不可整除,為平年。
西元年份除以100可整除但除以400不可整除,為平年。

程式演算函式
<?php
$year = 2016;
if (isLeapYear($year)){
 echo $year."年是閏年";
}else{
 echo $year."年是平年";
}

function isLeapYear($year)
{
 //400、4的倍數是閏年,但4的倍數又是100的倍數就是平年
 if ($year%400 == 0){
  $result = true;  //閏年
 }else if ($year%100 == 0){
  $result = false; //平年
 }else if ($year%4 == 0){
  $result = true;  //閏年
 }else{
  $result = false; //平年
 }
 return $result;
}
?>

輸出結果:
2016年是閏年


方式二:
使用PHP內建函數checkdate來檢查是否為閏年。

程式範例
<?php
$year = 2016;

//該年度如果有2月29日,表示是閏年
if (checkdate(2, 29, $year)){
 echo $year."年是閏年";
}else{
 echo $year."年是平年";
}
?>

輸出結果:
2016年是閏年

方式三:
使用PHP內建函數date來檢查是否為閏年。

程式範例
<?php
if (date("L", strtotime("2012-01-01"))){
 echo "是閏年";
}else{
 echo "不是閏年";
}
?>

輸出結果:
是閏年