前言之程式設計挑戰——計算機時間,研究time_t什麼時候重新回到開始?
date1.c
#include #include int main()
/**********************
0、time_t是一種系統基本資料型別,可被稱為日曆時間,它代表自unix紀元以來utc所經歷的秒數值,
unix紀元是1970-01-01 00:00:00,utc即格林尼治時間
1、time_t是long的typedef形式,為4位元組,所能表示的最大整數為0x7fffffff,
這個數值代表了time_t所能表示的最大時間
2、ctime函式,接收乙個time_t型別的指標,返回對應的26位元組時間字串
***********************/
root@duyuqi-optiplex-380:~/workspace/expertc/preface# make
gcc -c date1.c
gcc -o date1 date1.o
root@duyuqi-optiplex-380:~/workspace/expertc/preface# ./date1
sizeof(time_t)=4, biggest = tue jan 19 11:14:07 2038
ctime函式吧引數轉化為當地時間,它與utc不一致。所在時區是東八區(北京時間),比utc早了8小時,因此修改程式。
date2.c
#include #include int main()
/**********************
0、gmtime函式,接收乙個time_t型別的指標,將日曆時間轉換成國際標準時間的年月日時分秒周(乙個struct tm型別的資料),
該資料型別不是可列印的字串。
1、asctime函式,接收乙個struct tm型別的指標,返回可列印的時間字串
***********************/
root@duyuqi-optiplex-380:~/workspace/expertc/preface# make
gcc -c date1.c
gcc -c date2.c
gcc -o date1 date1.o
gcc -o date2 date2.o
root@duyuqi-optiplex-380:~/workspace/expertc/preface# ./date2
sizeof(time_t)=4, biggest = tue jan 19 03:14:07 2038
這樣就擠出了8小時,在大多數情形下,該程式完全解決了問題。關於unix時間以及的函式,可以參見——
但是該程式尚未完全成功。注意夏令時的問題和國際日界線(國際日期變更線)東西兩方時間差異。
向東乙個時區要加一小時。當向東越過日界線時,要減一天。時間問題,實際上是個很複雜的問題,
如有時間,應當好好再學習,有關於曆法,夏令時的知識。
PASCAL 高階程式設計 前言
前言turbo pascal是目前微機上最流行的pascal語言,它提供了集編輯 編譯 除錯和聯機幫助於一體的整合軟體開發環境,語言本身對標準pascal進行了大量的擴充套件,具有高效的數值運算能力 作業系統的低階呼叫功能 內嵌式組合語言等強有力的軟體開發支援,可以用於任何型別 任何規模的系統軟體和...
C 程式設計案例實訓教程 前言
前言 對於剛剛入門c 的讀者來說,一本具有豐富例項和詳細解答的指導書是不可缺少的,特別是準備 c 進行畢業設計的高校學生,開始使用 c 專案開發的程式設計師。使用本書精心選擇了 280個例項,主要針對 c 的基本操作語句和基本應用,給出了實際應用中常見問題的解決方案和解決模式,也加入了筆者多年在大型...
C 計算器程式設計教學課程前言
最近完成c 計算器程式設計,模仿win7的基本型,但有所超越。除了完成90 的功能,還新增了多項式,支援鍵盤輸入,算式保留,根據中國人習慣作了改進。程式運用了c 的基本功能,包括介面 繫結 物件導向 事件 字段封裝 多種迴圈 集合操作 操作符過載 string的多種操作等,同時實現先乘除後加減的功能...