レッスン10 - タイム・プログラミング
10.1時間タイプ
Codinated世界時(UTC):協定世界時、誰もがGMT(グリニッジ標準時、GMT)に知られています。
カレンダー時間:「(:1970年1月1日に0:00など)の経過秒この数時間の基準点からの」時間を示すために、カレンダーの時間が、あります。
10.2関数の学習
関数のプロトタイプ;関数が使用する関数名:学習と学習方法の機能は、三段階の学習方法があること、同じの前にあります。
1.カレンダーの時刻を取得
(1)関数名
時間
(2)関数のプロトタイプ
time_tの時間(のtime_t * tの);
(3)機能 -
戻るカレンダー時間へ
(4)ヘッダファイルに属し
書式#include <TIME.H>
(5)戻り値
成功:タイムカレンダー
失敗:-1
(6)パラメータ説明
T:戻り値は空のケースではありません。
(7)サンプルプログラム
書式#include <TIME.H>
main()の無効
{
time_t型のctime;
CTIME =時間(NULL)。
printf(CTIME "CTIMEが%Dを\ nです")。
}
2.取得GMT
(1)関数名
gmtime
(2)関数のプロトタイプ
構造体tmの*ののgmtime(定数のtime_t * timepに)。
(3)機能 -
Huawei社標準時を把握カレンダ時刻を指定timepにパラメータを設定します。
(4)ヘッダファイルに属し
書式#include <TIME.H>
(5)戻り値
厳しいTM
{
int型のtm_sec; //秒
int型のtm_min。//分
int型のtm_hour。//時間
int型のtm_mday。//月の日
int型のtm_mon。//月
int型のtm_year; //年
int型のtm_wdayコンポーネント。//曜日
int型のtm_yday; //年の日
int型のtm_isdstが、//夏時間
}。
成功:協定世界時の形式で保存されたTMを構造体へ
失敗しました:NULL
(6)パラメータ説明
timepに:時間との世界へ
(7)サンプルプログラム
書式#include <TIME.H>
main()の無効
{
time_t型のctime;
構造体tmの* tmを、
CTIME =時間(NULL)。
//は、標準時間カレンダー時刻に変換されます
TM =のgmtime(&CTIME)。
printf( "今時間は%dであり、minは%Dの\ nは"、TM-> tm_hour、TM-> tm_min)。
//は、本体部材における構造の同定のための方法があります。
}
3.ローカルタイムを取得します。
(1)関数名
現地時間()
(2)関数のプロトタイプ
構造体tmの*のlocaltimeの(定数のtime_t * timepに)。
(3)機能 -
現地時間にカレンダー時間を指摘timepにパラメータを設定します。
(4)ヘッダファイルに属し
書式#include <TIME.H>
(5)戻り値
厳しいTM
{
int型のtm_sec; //秒
int型のtm_min。//分
int型のtm_hour。//時間
int型のtm_mday。//月の日
int型のtm_mon。//月
int型のtm_year; //年
int型のtm_wdayコンポーネント。//曜日
int型のtm_yday; //年の日
int型のtm_isdstが、//夏時間
}。
成功:構造TMに格納されているローカル時刻を返します
失敗しました:NULL
(6)パラメータ説明
timepに:カレンダーの時間が変換されます
(7)サンプルプログラム
書式#include <TIME.H>
main()の無効
{
time_t型のctime;
構造体tmの* tmを、
CTIME =時間(NULL)。
現地時間に//カレンダー時間
TM = LOCALTIME(&CTIME)。
printf( "今時間は%dであり、minは%Dの\ nは"、TM-> tm_hour、TM-> tm_min)。
}
注意:私たちのプログラムが正しいか検証するために、我々は、dateコマンドによって、時間を見ることができる、と私たちは、上記の手順は同じであるプリントアウトする時間を見つけるでしょう。
4.文字列(フォーマット)時間を表示
(1)関数名
関数は、asctime
(2)関数のプロトタイプ
CHAR *関数は、asctime(constの構造体のtm * tmの);
(3)機能 -
構造体tmを文字列に時刻の形式であります
(4)ヘッダファイルに属し
書式#include <TIME.H>
(5)戻り値
文字列の表示時間
(6)パラメータ説明
TM:時刻の形式は、TMを変換します
(7)サンプルプログラム
書式#include <TIME.H>
main()の無効
{
time_t型のctime;
構造体tmの* tmを、
char * STIME。
CTIME =時間(NULL)。
現地時間に//カレンダー時間
TM =のgmtime(&CTIME)。
printf( "今時間は%dであり、minは%Dの\ nは"、TM-> tm_hour、TM-> tm_min)。
STIME =いるasctime(商標);
printf(STIME "時間は%S \ nが")。
}
取得時間精度
(1)関数名
gettimeofdayの();
(2)関数のプロトタイプ
int型はgettimeofday(struct timevalに*テレビ、strctタイムゾーン*のTZ)。
(3)機能 -
高精度な時刻を取得。
(4)ヘッダファイルに属し
書式#include <sysの/ TIME.H>
(4)戻り値
成功:0;
失敗:-1
(6)パラメータ説明
struct timevalに
{
time_tのtv_secの; //秒
Suseconds_t tv_usecの; //マイクロ秒
}
strutctタイムゾーン
{
int型tz_minuteswest; 西Greewichの//分
int型のあるtz_dsttime; // DST補正の種類
}
テレビ:1970年1月1から0を保存:0:こことマイクロ秒を通過する秒0点。
TZONE:通常NULL
(7)サンプルプログラム
次の手順は、これがNULLシンボルヘッダを必要とするため、ここでは、ヘッダの#include <stdio.hの>を使用し、実行するために()時間の関数FUNCを検出するために使用されます。
書式#include <sysの/ TIME.H>
書式#include <stdio.hに>
空FUNC()
{
int型I、J。
int型のRET;
以下のための(I = 0;私は1000年<;私は++)
用(J = 0; jの<1000; J ++)
K = J;
}
main()の無効
{
int型I、J。
構造体体timeval TV1。
構造体体timeval TV2。
gettimeofday(&TV1、NULL);
FUNC();
gettimeofday(&TV1、NULL);
I = tv2.tv_sec-tv1.tv_sec。
J = tv2.tv_usec-tv1.tv_usec。
printf( "秒%dです、マイクロ秒が%Dを\ nである"、i、j)は、
}
10.3概要