人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

生年月日チェックを行いたいのですが
ちょうどいい共通関数などはありませんか??
年に関しては自分で範囲指定できるような
共通関数があればすごい助かります。
宜しくお願いします。

●質問者: tech1
●カテゴリ:就職・転職 コンピュータ
✍キーワード:関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● andi
●20ポイント

http://a/

追加情報を下さい(いわしが使えないので回答で失礼します)。

1.プログラム言語は何言語を想定されていますか?

2.「生年月日チェック」とは生年月日をどのような条件でチェックするものでしょうか?

(日付として妥当かどうか(日付チェック)を調べるのでしょうか?)

◎質問者からの返答

PHP4.3.11です。

日付はチェックできているので年度の範囲を

設定できるような風に以下のソースを修正してもらえませんか??

function isCalender( $CheckYear, $CheckMonth, $CheckDay ) {

$LastDay= ””;// 末日格納

$EndDay= array();// 毎月最終日格納

// 年月が未入力である場合は処理しない

if( $CheckYear == ”” || $CheckMonth == ”” ) return true;

// 数値チェック、及び範囲チェックを行う

if( ! ereg( ”^[12][0-9][0-9][0-9]$”, $CheckYear ) ) {

return false;

} else if( ! ereg( ”^0?[1-9]$|^1[0-2]$”, $CheckMonth ) ) {

return false;

} elseif( $CheckDay != ”” &&

ereg( ”^0?[1-9]$|^[12][0-9]$|^3[01]$”, $CheckDay ) == false ) {

return false;

}

if( $CheckDay != ”” ) {

// $CheckYear 年 $CheckMonth 月の末日を求める

$EndDay = array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );

$LastDay = $EndDay[$CheckMonth - 1];

$LastDay += ( $CheckMonth == 2 and $CheckYear % 4 == 0 and ( $CheckYear % 400 == 0 or $CheckYear % 100 != 0 ) );

// 末日チェックを行う

if( $CheckDay > $LastDay ) return false;

}

return true;

}

;?>


2 ● andi
●20ポイント

http://www.res-system.com/weblog/item/438

PHP:変数のスコープ:グローバル変数を使う際の注意点:global

PHPはほとんど使用しないのですが、一応。


> 年度の範囲を設定


「どのような」設定の仕方を望まれているのかが分かりませんが、

1.グローバル変数

2.関数の引数として渡す

のどちらかが妥当だと思われます。


1.グローバル変数

<?php

$MaxYear = 2005

$MinYear = 1900

function isCalender(...){

global $MaxYear,$MinYear;

.

.

.

if($CheckYear < $MinYear || $MaxYear < $CheckYear) return false;

}

?>


2.関数の引数として渡す

<?php

$MaxYear = 2005

$MinYear = 1900

// 関数の呼び出し

// isCalender(...,$MaxYear,$MinYear);

function isCalender(...,$MaxYear,$MinYear){

.

.

.

if($CheckYear < $MinYear || $MaxYear < $CheckYear) return false;

}

?>


ところで、ご質問が曖昧なので回答が付かないのかな・・・と思います。

ご質問が曖昧だとポイントも無駄にしちゃいますので、ご登録前に一度質問内容を推敲されてみて下さい。


# 余計な指摘申し訳ありません。

◎質問者からの返答

ありがとうございます。


3 ● teru2g
●20ポイント

http://php.s3.to/man/function.checkdate.html

checkdate

日付の妥当性をチェックするのであれば、自分で正規表現などを使うよりはPHPのcheckdate関数を使うほうが楽です。

$isValid = checkdate($month, $day, $year);

日付が妥当であればTRUEが、ありえない日付の場合はFALSEが返ります。

この結果を見てTRUEだった場合に、設定した範囲の年のチェックをすればよろしいのではないかと

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ