スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[PHP] 年号算出



年月日を渡し、参照渡しにした文字列には年号換算の年をセットします。
戻り値として年号の文字列を戻します。
年月日の入力で、同年に2つの年号がまたがる場合も対応しています。(例:昭和64年/平成元年)

動作条件:
特になし。このサーバは PHP5ですが、4でも問題ないでしょう。


<?php
$y = strlen( $_POST['y'] ) > 0 ? htmlspecialchars( $_POST['y'] ) : "";
$m = strlen( $_POST['m'] ) > 0 ? htmlspecialchars( $_POST['m'] ) : "";
$d = strlen( $_POST['d'] ) > 0 ? htmlspecialchars( $_POST['d'] ) : "";

$year = "";

//$year(年号換算の年が格納される)は参照渡し。関数内でセットされる。
$nengo = SetNengoNen( $year, $y, $m, $d );

//1年を元年に変換
$year = ( $year == 1 ) ? "元" : $year;

$buf = $nengo.$year."年".$m."月".$d."日";

include( "nengou.tmpl" );

//----------------------------------------------
// 年号と年をセット
//----------------------------------------------
function SetNengoNen( &$year, $y, $m, $d ){

$ret = "";

//数値でなければ抜ける
if( !is_numeric( $y ) || !is_numeric( $m ) || !is_numeric( $d ) ){

}

//明治以前であれば何もしない
if( $y < 1868 ){
return( $ret );
}

//-------------------------
// 年のみで判断できるもの
//-------------------------
if( $y >= 1868 && $y < 1912 ){
$ret = "明治";
}
elseif( $y >= 1913 && $y < 1926 ){
$ret = "大正";
}
elseif( $y >= 1927 && $y < 1989 ){
$ret = "昭和";
}
elseif( $y >= 1990 ){
$ret = "平成";
}
//-------------------------
// 年のみで判断できないもの
//-------------------------
else{
//1912年
if( $y == 1912 ){
// 7/29 | 7/30
if( $m < 7 ){
$ret = "明治";
}
elseif( $m > 7 ){
$ret = "大正";
}
else{
if( $d <= 29 ){
$ret = "明治";
}
else{
$ret = "大正";
}
}
}
//1926
if( $y == 1926 ){
// 12/24 | 12/25
if( $m < 12 ){
$ret = "大正";
}
else{
if( $d <= 24 ){
$ret = "大正";
}
else{
$ret = "昭和";
}
}
}
//1989
if( $y == 1989 ){
// 1/7 | 1/8
if( $m > 1 ){
$ret = "平成";
}
else{
if( $d <= 7 ){
$ret = "昭和";
}
else{
$ret = "平成";
}
}
}
}

if( $ret == "明治" ){
$year = $y - 1867;
}
elseif( $ret == "大正" ){
$year = $y - 1911;
}
elseif( $ret == "昭和" ){
$year = $y - 1925;
}
elseif( $ret == "平成" ){
$year = $y - 1988;
}

return( $ret );

}

?>
スポンサーサイト
検索フォーム
リンク
最新記事
最新コメント
カテゴリ
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。