1. 程式人生 > >C語言獲取計算機本地時間

C語言獲取計算機本地時間

最近看某大佬推薦的Expert C Programming看得很頭疼,覺得自己還是適合看一點正經一點的教材,萌新頭大,肥宅難受,嚶嚶嚶!

哎,和程式有關的書,還是有趣一點好。。。嚶嚶嚶

本文結合了一些行業前輩的知識,表示感謝

在這本書裡,提到了一些和計算機日期有關的東西,這裡引入一個用程式來展示本地時區時間的程式段,並且解釋一些原型:

(手打的,可能中英文鍵盤沒區分2333,改一下就好)

#include <stdio.h>

#include <time.h>

int main()

{

    char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; //指標陣列-字串
    time_t timep;
    struct tm *p;
    time(&timep);
    p = localtime(&timep); //取得當地具體時間
    printf("%d %d %d ", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday);
    printf("%s %d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);


    system("pause");

    return 0;

}

1.char *wday[]={*****}是為了展示出是星期幾,而不是數字來表徵。(很多個字串都存在一起,用這個結構)

2.time_t其實就是相對於1970年的秒數值,例如2009/12/15 8:00 用time_t型別來表示就是1260831600秒(1970--2009/12/15 8:00的秒數),我們新建一個這種型別的變數timep

3.struct tm *p,新建一個結構體指標

4.time():這麼解釋可能會直觀一點:

time() 是指返回自 Unix 紀元(January 1 1970 00:00:00 GMT)起的當前時間的秒數的函式,主要用來獲取當前的系統時間,返回的結果是一個time_t型別。程式碼中是把這個系統時間寫入timep的值裡面;

5.由於獲取的時間是GMT格林威治標準時間,和當地電腦可能不一樣,所以要用到localtime轉化一下

6.tm是一個原型,在time.h裡面,直接儲存年月日的是一個結構:

struct tm
{
    int tm_sec;  /*秒,正常範圍0-59, 但允許至61*/
    int tm_min;  /*分鐘,0-59*/
    int tm_hour; /*小時, 0-23*/
    int tm_mday; /*日,即一個月中的第幾天,1-31*/
    int tm_mon;  /*月, 從一月算起,0-11*/  1+p->tm_mon;
    int tm_year;  /*年, 從1900至今已經多少年*/  1900+ p->tm_year;
    int tm_wday; /*星期,一週中的第幾天, 從星期日算起,0-6*/
    int tm_yday; /*從今年1月1日到目前的天數,範圍0-365*/
    int tm_isdst; /*日光節約時間的旗標*/
};


需要特別注意的是,年份是從1900年起至今多少年,而不是直接儲存如2011年,月份從0開始的,0表示一月,星期也是從0開始的, 0表示星期日,1表示星期一。

相關推薦

C語言獲取計算機本地時間

最近看某大佬推薦的Expert C Programming看得很頭疼,覺得自己還是適合看一點正經一點的教材,萌新頭大,肥宅難受,嚶嚶嚶! 哎,和程式有關的書,還是有趣一點好。。。嚶嚶嚶 本文結合了一些行業前輩的知識,表示感謝 在這本書裡,提到了一些和計算機日期有關的東西

C語言獲取並格式化時間

前幾天使用AWS V4簽名時,需要一種特殊時間格式(NNNNMMDDTHHMMSSZ),在node還是比較好拼裝,但C裡面還沒有拼這種比較奇怪的格式。這裡記錄下一下過程。 環境:Linux Ubuntu 1 函式 主要涉及到time.h標頭檔案中以下三

C語言獲取程式執行時間

所需標頭檔案:"time.h"所需函式:clock函式原型:clock_t __cdecl clock(void);函式介紹:用於獲取程式啟動時間到這次呼叫clock函式的CPU佔用時間其在time檔案裡還有一個巨集叫#define CLOCKS_PER_SEC ((cloc

C語言獲取系統當前時間

函式名: time () 函式原型:time_t time(time_t * timer)       功 能: 獲取當前的系統時間,返回的結果是一個time_t型別,其實就是一個大整數,其值表示

linux下用C語言獲取本地時間

一個小專案需要以系統時間(精確到微秒)為變數建立檔名,在網上搜索資料,在stackoverflow上找到了需要的東西,記下來備用 #include <sys/time.h> #include <time.h> #include <stdio

linux下c語言獲取當前時間

keyword spa pre urn markdown view 技術分享 時間 tle 和時間有關的函數定義在頭文件”time.h”中 常用函數: time_t time(time_t *t); 函數說明:此函數會返回從公元 1970 年1 月1 日的UTC

C語言獲取當前時間(Linux環境下,VC6.0,Codeblock環境下通用)

在Linux環境下用C語言編寫程式獲取當前的時間只要呼叫其內部的函式即可。這些函式在 time.h 這個標頭檔案裡,第一個函式原型: ① time_t time(time_t *t),通過Linux的man也很方便能夠找到這個函式的相關說明: 在Linux環境的命令列模式中輸入 man 2 time即

c語言獲取時間

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #include <time.h> int

C語言獲取系統時間方法

需要利用C語言的時間函式time和localtime,具體說明如下: 一、函式介面介紹: 1、time函式。 形式為time_t time (time_t *__timer); 其中time_t為time.h定義的結構體,一般為長整型。 這個函式會獲取

C語言獲取系統時間的幾種方式

C語言中如何獲取時間?精度如何? 1 使用time_t time( time_t * timer ) 精確到秒 2 使用clock_t clock() 得到的是CPU時間 精確到1/CLOCKS_PER_SEC秒 3 計算時間差使用double difftime( time_t timer1, time_

C語言獲取系統時間的幾種方式 !

四.設定計時器 定義TIMER ID #define TIMERID_JISUANFANGSHI 2 在適當的地方設定時鐘,需要開始其作用的地方; SetTimer(TIMERID_JISUANFANGSHI,200,NULL); 在不需要定時器的時候的時候銷燬掉時鐘 KillTimer(TIMERID_J

C獲取系統時間C語言獲取系統時間的幾種方式

C 語言中如何獲取時間?精度如何? 1 使用 time_t time( time_t * timer ) 精確到秒 2 使用 clock_t clock() 得到的是 CPU 時間 精確到 1/CLOCKS_PER_SEC 秒 3 計算時間差使用 double difftime( time_t tim

C語言獲取當前的日期及時間

我們在寫C語言程式的時候,有的時候會用到讀取本機的時間和日期,怎麼做呢?其實很簡單的,下面簡單說一下:C語言中讀取系統時間的函式為time(),其函式原型為:#include <time.h>time_t time( time_t * ) ;time_t就是lon

C語言獲取本地IP(適用於多種作業系統)

前言 下面列舉多種方法獲取本地IP,這些方法在linux系統下均可執行,有些方法亦可以在Windows和Android下執行. 原始碼 /*下列幾種方法均優先輸出非迴環IP:127.0.0.1 inet_ntoa(): 系統函式,將網路的二進位制

C語言獲取編譯器時間(keil5 MDK)

static void gettimertohex(const char* p_str,char* pbuf) {     char lenght = strlen(p_str);if (lenght != 8){return;}*pbuf++=(p_str[0]-'0')

C語言獲取當前時間

作業系統提供了很多系統呼叫,既方便程式設計師程式設計,又提高了程式的可移植性。在介紹利用系統呼叫獲取當前時間之前,先辨析幾個基本的概念。API ,系統呼叫 ,封裝例程API只是一個函式定義。系統呼叫通過軟中斷向核心發出一個明確的請求。Libc庫定義了一些API引用的封裝例程,

C語言獲取本地所有網絡卡的ip地址及MAC資訊

  本程式在ubuntu下執行成功,後再centos系統下也能編譯成功並執行。原始碼如下    // demo01.c #include <stdio.h> #include <stdlib.h> #include <str

C語言獲取執行文件(XXX.exe)文件名和目錄路徑

color lan .net director blank Go 執行 pause sys 同CSDN上的 https://blog.csdn.net/Higashino_Keigo/article/details/80489874 C語言獲取執行文件(XXX.exe)文件

北京大學Cousera學習筆記--4-計算導論與C語言基礎--計算機的基本原理-程序運行的基本原理

運行程序 控制 部分 byte 輸入 分類 技術 表示 在一起 已知:電路能完成計算 怎麽計算:設計好很多個原子電路,需要的時候就把他們臨時組裝在一起--ENIAC 升級:馮諾依曼-EDVAC(現在的計算機都是)   1、通過某種命令來控制計算機。讓計算機按照這種命令來運行

C C++如何獲取當前系統時間

C庫中與系統時間相關的函式定義在<time.h>標頭檔案中, C++定義在<ctime>標頭檔案中。 一、time(time_t*)函式 函式定義如下: time_t time (time_t* timer);