c獲取系統語言
1. c語言獲取系統時間
#include <stdio.h>
#include <time.h>
void main ()
{ time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "\007The current date/time is: %s", asctime (timeinfo) );
exit(0);
}
=================
#include <time.h> -- 必須的時間函數頭文件
time_t -- 時間類型(time.h 定義)
struct tm -- 時間結構,
time.h 定義如下:
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;
time ( &rawtime ); -- 獲取時間,
以秒計,從1970年1月一日起算,存於rawtime localtime ( &rawtime ); -- 轉為當地時間,tm 時間結構
asctime ()-- 轉為標准ASCII時間格式: 星期 月 日 時:分:秒 年 =========================================
你要的格式可這樣輸出: printf ( "M-d-d d:d:d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon, timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec); 就是直接列印tm,tm_year 從1900年計算,所以要加1900, 月tm_mon,從0計算,所以要加1 其它你一目瞭然啦。
2. 用C語言實現:首先獲取系統時鍾,然後時鍾數據格式為:年月日時分秒(YYYYMMDDHHMMSS)
#include <stdio.h>
#include <time.h>
int main()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
int year,month,day,hour,min,sec;
year = 1900+timeinfo->tm_year;
month = 1+timeinfo->tm_mon;
day = timeinfo->tm_mday;
hour = timeinfo->tm_hour;
min = timeinfo->tm_min;
sec = timeinfo->tm_sec;
printf ( "當前時間:%4d-%02d-%02d %02d:%02d:%02d
",year, month,day,hour,min,sec);
printf ( "你需要的格式:%4d%02d%02d%02d%02d%02d
",year, month,day,hour,min,sec);
char hyy[2],lyy[2],MM[2],dd[2],hh[2],mm[2],ss[2];
sprintf(hyy,"%02X",year/100);
sprintf(lyy,"%02X",year%100);
sprintf(MM,"%02X",month);
sprintf(dd,"%02X",day);
sprintf(hh,"%02X",hour);
sprintf(mm,"%02X",min);
sprintf(ss,"%02X",sec);
printf("轉化為16進制:%02s%02s%02s%02s%02s%02s%02s
",hyy,lyy,MM,dd,hh,mm,ss);
//exit(0);
return 0;
}
說明:我用VC6.0現寫的,運行結果截圖如下:
3. 如何用c語言獲取當前操作系統的類型
如何判斷當前是什麼操作系統?
#if
defined(_AIX)
//
IBM
AIX
...
...
#endif
#if
defined(__sun)
//
SUN
OS
...
...
#endif
linux下定義了
"linux",
Sco
Openserver下定義了unix
上面的方法有時候不是很確定,也不好自己掌握和控制,下面探討一下另一個方法:
在UNIX下有一個uname的命令,在不同的操作系統下有不同的返回,
例如:
SCO:
SCO_SV
Linux:
Linux
AIX:
AIX
Unixware:
UnixWare
可以在makefile文件中增加如下句子來判斷當前的操作系統類型,和編譯選擇:
OSTYPE=`uname`
CFLAGS_SCO
=
-D
SCO_SV
CFLAGS_LINUX
=
-D
AIX
prog:
@if
[
"$(OSTYPE)"
=
'SCO_SV'
];then
make
prog1;else
make
prog2;fi
prog1:
$(CC)
-o
tt
tt.c
$(CFLAGS_SCO)
prog2:
$(CC)
-o
tt2
tt2.c
$(CFLAGS_AIX)
如上在編譯命令行中增加-D
SCO_SV的定義,
程序的源代碼中可以如下使用:
#ifdef
SCO_SV
typedef
unsigned
int
socklen_t;
#endif
如此,源代碼就很容易的適應不同的操作系統了。
4. 用c語言如何獲取系統當前時間的函數
1、C語言中讀取系統時間的函數為time(),其函數原型為:
#include <time.h>
time_t time( time_t * ) ;
time_t就是long,函數返回從1970年1月1日(MFC是1899年12月31日)0時0分0秒,到現在的的秒數。
2、C語言還提供了將秒數轉換成相應的時間格式的函數:
char * ctime(const time_t *timer); //將日歷時間轉換成本地時間,返回轉換後的字元串指針 可定義字元串或是字元指針來接收返回值
struct tm * gmtime(const time_t *timer); //將日歷時間轉化為世界標准時間(即格林尼治時間),返回結構體指針 可定義struct tm *變數來接收結果
struct tm * localtime(const time_t * timer); //將日歷時間轉化為本地時間,返回結構體指針 可定義struct tm *變數來接收結果
3、常式:
#include <time.h>
void main()
{
time_t t;
struct tm *pt ;
char *pc ;
time(&t);
pc=ctime(&t) ; printf("ctime:%s", pc );
pt=localtime(&t) ; printf("year=%d", pt->tm_year+1900 );
}
時間結構體struct tm 說明:
struct tm {
int tm_sec; /* 秒 – 取值區間為[0,59] */
int tm_min; /* 分 - 取值區間為[0,59] */
int tm_hour; /* 時 - 取值區間為[0,23] */
int tm_mday; /* 一個月中的日期 - 取值區間為[1,31] */
int tm_mon; /* 月份(從一月開始,0代表一月) - 取值區間為[0,11] */
int tm_year; /* 年份,其值等於實際年份減去1900 */
int tm_wday; /* 星期 – 取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推 */
int tm_yday; /* 從每年的1月1日開始的天數 – 取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */
int tm_isdst; /* 夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/
};
5. 如何用C語言獲取當前系統時間
需要利用C語言的時間函數time和localtime,具體說明如下:
一、函數介面介紹:
1、time函數。
形式為time_t time (time_t *__timer);
其中time_t為time.h定義的結構體,一般為長整型。
這個函數會獲取當前時間,並返回。 如果參數__timer非空,會存儲相同值到__timer指向的內存中。
time函數返回的為unix時間戳,即從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
由於是秒作為單位的,所以這並不是習慣上的時間,要轉為習慣上的年月日時間形式就需要另外一個函數了。
2、localtime函數。
形式為struct tm *localtime (const time_t *__timer);
其中tm為一個結構體,包含了年月日時分秒等信息。
這種結構是適合用來輸出的。
二、參考代碼:
#include<stdio.h>
#include<time.h>
intmain()
{
time_tt;
structtm*lt;
time(&t);//獲取Unix時間戳。
lt=localtime(&t);//轉為時間結構。
printf("%d/%d/%d%d:%d:%d ",lt->tm_year+1900,lt->tm_mon,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec);//輸出結果
return0;
}
注意事項:
struct tm中的tm_year 值為實際年減去1900, 所以輸出的時候要是lt->tm_year+1900。
6. C/C++如何獲取當前系統的語言類型
判斷當前操作系統是那種語言
#include <Winnls.h>
#pragma comment(lib,"Kernel32.lib")
LANGID lid = GetSystemDefaultLangID();
switch (lid)
{
case 0X0804:
//MessageBox(_T("Chiese"));
break;
case 0x0409:
//MessageBox(_T("English"));
break;
}
(6)c獲取系統語言擴展閱讀
獲取操作系統的類型
int CSystemINFO::GetSysVersion()
{
OSVERSIONINFO osver = {sizeof(OSVERSIONINFO)};
GetVersionEx(&osver);
int t;
if (osver.dwMajorVersion == 5 && osver.dwMinorVersion == 0)
{
t = 0;//windows 2000
}
else if (osver.dwMajorVersion == 5 && osver.dwMinorVersion == 1)
{
t = 1;//windows XP
}
else if (osver.dwMajorVersion == 6 && osver.dwMinorVersion == 0)
{
t = 2;//windows 2003
}
else if (osver.dwMajorVersion == 5 && osver.dwMinorVersion == 2)
{
t = 3;//Windows Vista
}
else if (osver.dwMajorVersion == 6 && osver.dwMinorVersion == 1)
{
t = 4;//Windows 7
}
else t = 4;//Windows 7
return t;
}
7. c語言如何獲取系統時間並將時間儲存在字元串里
#include <stdio.h>
#include <time.h>
void main()
{
time_t ltime;
struct tm *today;
time( <ime );
today = localtime( <ime );
printf("%04d-%02d-%02d %02d:%02d:%02d\n",1900+today->tm_year,today->tm_mon+1,today->tm_mday,today->tm_hour,today->tm_min,today->tm_sec);
}
先調用time獲得當前時間,這是個從1970-1-1午夜0點開始的秒數,然後調用localtime將該時間專為本地時間就可以列印了。其中tm_year需要加上1900,tm_mon需要加上1,看printf你就明白了。
8. c語言 獲取系統時間輸出到毫秒 格式如下[11:44:25:500]
#include <windows.h>
#include <stdio.h>
int main( void )
{
SYSTEMTIME sys;
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);
return 0;
}
9. 看過來,看過來 C語言獲取系統時間的幾種方式
我們在寫C語言程序的時候,有的時候會用到讀取本機的時間和日期,怎麼做呢?其實很簡單的,下面簡單說一下:
C語言中讀取系統時間的函數為time(),其函數原型為:#include <time.h>time_t time( time_t * ) ;
time_t就是long,函數返回從1970年1月1日(MFC是1899年12月31日)0時0分0秒,到現在的的秒數。
可以調用ctime()函數進行時間轉換輸出:char * ctime(const time_t *timer);
將日歷時間轉換成本地時間,按年月日格式,進行輸出,如:Wed Sep 23 08:43:03 2015C語言還提供了將秒數轉換成相應的時間結構的函數:
struct tm * gmtime(const time_t *timer);//將日歷時間轉化為世界標准時間(即格林尼治時間)
struct tm * localtime(const time_t * timer);//將日歷時間轉為本地時間將通過time()函數返回的值,轉成時間結構structtm :
struct tm {int tm_sec; /* 秒 – 取值區間為[0,59] */
int tm_min; /* 分 - 取值區間為[0,59] */
int tm_hour; /* 時 - 取值區間為[0,23] */
int tm_mday; /* 一個月中的日期 - 取值區間為[1,31] */
int tm_mon; /* 月份(從一月開始,0代表一月) - 取值區間為[0,11] */
int tm_year; /* 年份,其值等於實際年份減去1900 */
int tm_wday; /* 星期 – 取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推 */
int tm_yday; /* 從每年的1月1日開始的天數 – 取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */
int tm_isdst; /* 夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/};
編程者可以根據程序功能的情況,靈活的進行日期的讀取與輸出了。
下面給出一段簡單的代碼:
#include<time.h>
intmain()
{
time_ttimep;
structtm*p;
time(&timep);
p=gmtime(&timep);
printf("%d ",p->tm_sec);/*獲取當前秒*/
printf("%d ",p->tm_min);/*獲取當前分*/
printf("%d ",8+p->tm_hour);/*獲取當前時,這里獲取西方的時間,剛好相差八個小時*/
printf("%d ",p->tm_mday);/*獲取當前月份日數,范圍是1-31*/
printf("%d ",1+p->tm_mon);/*獲取當前月份,范圍是0-11,所以要加1*/
printf("%d ",1900+p->tm_year);/*獲取當前年份,從1900開始,所以要加1900*/
printf("%d ",p->tm_yday);/*從今年1月1日算起至今的天數,范圍為0-365*/
}
10. C語言怎樣獲取系統當前的時間並把它保存到定義的變數中
C語言中讀取系統時間的函數為time(),其函數原型為:
#include <time.h>
time_t time( time_t * ) ;
time_t就是long,函數返回從1970年1月1日(MFC是1899年12月31日)0時0分0秒,到現在的的秒數。
C語言還提供了將秒數轉換成相應的時間格式的函數:
char * ctime(const time_t *timer); //將日歷時間轉換成本地時間,返回轉換後的字元串指針 可定義字元串或是字元指針來接收返回值
struct tm * gmtime(const time_t *timer); //將日歷時間轉化為世界標准時間(即格林尼治時間),返回結構體指針 可定義struct tm *變數來接收結果
struct tm * localtime(const time_t * timer); //將日歷時間轉化為本地時間,返回結構體指針 可定義struct tm *變數來接收結果
例:
#include<time.h>
voidmain()
{
time_tt;
structtm*pt;
char*pc;
time(&t);
pc=ctime(&t);printf("ctime:%s",pc);
pt=localtime(&t);printf("year=%d",pt->tm_year+1900);
}
時間結構體struct tm 說明:
structtm{
inttm_sec;/*秒–取值區間為[0,59]*/
inttm_min;/*分-取值區間為[0,59]*/
inttm_hour;/*時-取值區間為[0,23]*/
inttm_mday;/*一個月中的日期-取值區間為[1,31]*/
inttm_mon;/*月份(從一月開始,0代表一月)-取值區間為[0,11]*/
inttm_year;/*年份,其值等於實際年份減去1900*/
inttm_wday;/*星期–取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推*/
inttm_yday;/*從每年的1月1日開始的天數–取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推*/
inttm_isdst;/*夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/
};