溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

c++與c#的時(shí)間如何轉(zhuǎn)換

發(fā)布時(shí)間:2022-10-22 11:37:59 來源:億速云 閱讀:157 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“c++與c#的時(shí)間如何轉(zhuǎn)換”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“c++與c#的時(shí)間如何轉(zhuǎn)換”吧!

1.C++中的時(shí)間
(1) time_t其實(shí)是一個(gè)64位的long int類型
(2) time函數(shù):
函數(shù)簡(jiǎn)介:
函數(shù)名:  time   
頭文件:  time.h   
函數(shù)原型:time_t time(time_t *timer)   
功能: 獲取當(dāng)前的系統(tǒng)時(shí)間,返回的結(jié)果是一個(gè)time_t類型,其實(shí)就是一個(gè)大整數(shù),其值表示從CUT(Coordinated Universal Time)時(shí)間1970年1月1日00:00:00(稱為UNIX系統(tǒng)的Epoch時(shí)間)到當(dāng)前時(shí)刻的秒數(shù),然后調(diào)用localtime將time_t所表示的CUT時(shí)間轉(zhuǎn)換為本地時(shí)間(我們是+8區(qū),比CUT多8個(gè)小時(shí))并轉(zhuǎn)成struct tm類型,分別表該類型的各數(shù)據(jù)成員示年月日時(shí)分秒。
顯示系統(tǒng)當(dāng)前時(shí)間:

復(fù)制代碼 代碼如下:

int main()
{ 
time_t ltime;
time(&ltime);
cout<<ctime(&time);
return 0;
}

ctime函數(shù):
char *ctime(const time_t *timer);
timer:time_t類型指針
返回值:格式為“星期 月 日 小時(shí):分:秒 年\n\0”的字符串

localtime函數(shù):(gmtime函數(shù)與之類似)
struct tm *localtime(const time_t *timer);
timer:time_t類型指針
返回值:以tm結(jié)構(gòu)表示的時(shí)間指針

asctime函數(shù):
char *asctime(const struct tm *timeptr);
timeptr:結(jié)構(gòu)tm指針
返回值:格式為“星期 月 日 小時(shí):分:秒 年\n\0”的字符串
例:

復(fù)制代碼 代碼如下:

#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\n",asctime(tblock));
return 0;   
}

2.將C++中time_t類型轉(zhuǎn)換成C#中的DateTime類型

復(fù)制代碼 代碼如下:

//time_t是世界時(shí)間, 比 本地時(shí)間 少8小時(shí)(即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類型轉(zhuǎn)換成C++的time_t類型

復(fù)制代碼 代碼如下:

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));}

到此,相信大家對(duì)“c++與c#的時(shí)間如何轉(zhuǎn)換”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI