◆ 指定された日時が既に過ぎていないか判別する

  • 表題通りです。指定された日時が、既に過ぎていないかを判別する関数です。

!ポイント
  • まず現在時刻を取得.
    まず現在時刻を取得。
  • 年・月・日・時・分と順に比較.
    まず指定された年数と、現在時刻の年数を比較します。
    この時、指定された年数が現在年より大きかったら無条件で「まだ過ぎていない」事になります。
    年数が一致していた場合は、次に月の比較を行います。以降はこれまでの比較作業の繰り返しです。

必要なヘッダファイル
winbase.h

関数宣言部
//関数のプロトタイプ宣言
BOOL CheckIfTimePassedOrNot(
	int _year, int _month, int _date, int _hour, int _minute
);

関数定義部
/*
 * Function Name:CheckIfTimePassedOrNot;
 *
 * Param        :判別を行う年・月・日・時・分
 * Return       :BOOL/過ぎていない場合=TRUE,過ぎていた場合=FALSE
 * Description  :指定された日時が過ぎていないかをチェックする。
 */
BOOL CheckIfTimePassedOrNot(
	int _year, int _month, int _date, int _hour, int _minute
)
{
	SYSTEMTIME	st;
	GetLocalTime(&st);

	//まず年
	if( st.wYear < _year )
		return TRUE;
	else if( st.wYear > _year )
		return FALSE;

	//まず月
	if( st.wMonth < _month )
		return TRUE;
	else if( st.wMonth > _month )
		return FALSE;

	//次日
	if( st.wDay < _date )
		return TRUE;
	else if( st.wDay > _date )
		return FALSE;

	//時
	if( st.wHour < _hour )
		return TRUE;
	else if( st.wHour > _hour )
		return FALSE;

	//分
	if( st.wMinute < _minute )
		return TRUE;
	else if( st.wMinute > _minute )
		return FALSE;

	return TRUE;
}



戻る