こんばんわ
またまた質問させていただきます。
時間の比較をしたいのですが、現在時刻とtime_t型でもらった
値を比較したいのですが、うまくいきません。
どなたかアドバイス宜しくお願いします。
環境としては、
自PC:WinNT
開発環境:VC++6.0 SP5
です。
difftime()は使われましたか?
ご質問の意図がいまひとつわからないのですが、
現在時刻をtime_t型で取得して、もらったtime_t型と比較するだけです。
現在時刻のtime_t型はtime()で取得できます。
C++のすばらしさを知りつつも、ついついCに走ってしまうのですが・・(^^;
#include <time.h>
void foo( time_t obj )
{
time_t now;
time( &now );
if( now == obj ){
// obj は現在時刻と同時刻
}
else if( now < obj ){
// obj は現在時刻より未来
}
else {
// obj は現在時刻より過去
}
}
こんな感じでどうでしょうか?
ヘルプを「時間管理」で検索すれば時間に関連した関数が
たくさん見つかると思うので確認してみてください。
ありがとうございます。
うまくいきました。
ついでにもうひとつ質問させてください。
現在時刻をasctime()を使って表示させたいのですが、
宜しくお願いします。
MSDNより引用。
プログラム例
/* ASCTIME.C: システム時刻を long int 型の aclock に代入し、
* これを newtime 構造体に変換してから、asctime 関数を使って
* 出力用の文字列形式に変換します。
*/
#include <time.h>
#include <stdio.h>
struct tm *newtime;
time_t aclock;
void main( void )
{
time( &aclock ); /* 秒単位で時刻を取得 */
newtime = localtime( &aclock ); /* 時刻を tm 構造体形式に変換 */
/* 現地時刻を文字列で印字 */
printf( 現在の日付と時刻: %s\n, asctime( newtime ) );
}
出力
現在の日付と時刻: Sun Oct 29 19:58:13 1995
うまくいきました。
本当に有難うございました。
これからも宜しくお願いします。