c+++とc萶の時間変換例を共有する。
2140 ワード
1.C++中の時間:(1)time_tは64ビットのlong intタイプ(2)time関数です。関数の概要:関数名: タイムヘッダファイル: time.h関数の原型:time_t timet*timer機能:現在のシステム時間を取得し、結果としてタイムスタンプを返します。tタイプとは、CUT(Coordinanted Universal Time)時間1970年1月1日00:00(UNIXシステムと呼ばれるEpoch時間)から現在時刻までの秒数を示す大きな整数です。その後、locatimeを呼び出してタイムアウトします。tが示すCUT時間はローカル時間(私たちは+8エリアで、CUTより8時間多い)に変換され、struct tmタイプに変更され、それぞれのタイプの各データメンバーが年月日を示した時分秒を表します。システムの現在の時間を表示します。
locatime関数:(gmtime関数と似ています)structm*locatimet*timer;;timer:time me_tタイプポインタの戻り値:tm構造で表される時間ポインタ
asctime関数:char*asctime(const struct tm*timeptr);timeptr:構造tmポインタの戻り値:フォーマットは「月の日時間:分:秒年\0」の文字列例:
int main()
{
time_t ltime;
time(<ime);
cout<<ctime(&time);
return 0;
}
ctime関数:char*ctime(const time_)t*timer;;timer:time me_t種類のポインタの値を返します。書式は「月と日の時間:分:秒と年\0」の文字列です。locatime関数:(gmtime関数と似ています)structm*locatimet*timer;;timer:time me_tタイプポインタの戻り値:tm構造で表される時間ポインタ
asctime関数:char*asctime(const struct tm*timeptr);timeptr:構造tmポインタの戻り値:フォーマットは「月の日時間:分:秒年\0」の文字列例:
#include<stdio.h>
#include <stddef.h>
#include <time.h>
int main(void)
{
time_t timer; //time_t long int
struct tm *tblock;
timer = time(NULL);// time(&timer);
tblock = localtime(&timer);
printf("Local time is: %s
",asctime(tblock));
return 0;
}
2.C++中time_をtタイプはC铉中のDateTimeタイプに変換される:
//time_t , 8 ( 28800 )
double seconds = 1259666013 + 28800;
double secs = Convert.ToDouble(seconds);
DateTime dt = new DateTime(
1970, 1, 1, 0, 0, 0, DateTimeKind.Unspecified).AddSeconds(secs);
//TimeSpan span =
// TimeSpan.FromTicks(seconds*TimeSpan.TicksPerSecond);
Console.WriteLine(dt);
3.C〓のDateTimeタイプをC++のtime_に変換します。tタイプ
public static long DateTimeToTime_t(DateTime dateTime)
{
long time_t;
DateTime dt1 = new DateTime(1970, 1, 1,0,0,0);
TimeSpan ts =dateTime - dt1;
time_t = ts.Ticks/10000000-28800;
return time_t;
}
static void Main(string[] args)
{
DateTime dateTime = new DateTime(2009,12,1,19,13,33);
Console.WriteLine(DateTimeToTime_t(dateTime));
}