當前位置:首頁 » 編程語言 » c語言改變時間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言改變時間

發布時間: 2023-01-15 21:59:17

『壹』 怎麼重置系統時間,用c語言

用中文C: 習語言 作為工具的話, 代碼如下:

#包含 「習語言系統.介面」
#包含 「習語言視窗.介面」
整數類型 主函數(整數類型 參數個數, 字元串類型 參數[] )
開始
系統時間類型 時間;
時間.年 = 2012;
時間.月 = 8;
時間.日 = 22;
時間.時 = 8;
時間.分 = 30;
時間.秒 = 15;
時間.毫秒 = 0;
設置當地時間(&時間);

返回 0;
結束

『貳』 c語言時間處理函數

C語言的標准庫函數包括一系列日期和時間處理函數,它們都在頭文件中說明。

在頭文件中定義了三種類型:time_t,struct tm和clock_t。

下面列出了這些函數。

time_t time(time_t *timer);

double difftime(time_t time1,time_t time2);

struct tm *gmtime(const time_t *timer);

struct tm *localtime(const time_t *timer);

char *asctime(const struct tm *timeptr);

char *ctime(const time_t *timer);

size_t strftime(char *s,size_t maxsize,const char *format,const struct tm *timeptr);

time_t mktime(struct tm *timeptr);

clock_t clock(void);

【具體應用舉例】

asctime(將時間和日期以字元串格式表示)
相關函數
time,ctime,gmtime,localtime
表頭文件
#i nclude
定義函數
char * asctime(const struct tm * timeptr);
函數說明
asctime()將參數timeptr所指的tm結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果以字元串形態返回。
此函數已經由時區轉換成當地時間,字元串格式為:"Wed Jun 30 21:49:08 1993\n"
返回值
若再調用相關的時間日期函數,此字元串可能會被破壞。此函數與ctime不同處在於傳入的參數是不同的結構。
附加說明
返回一字元串表示目前當地的時間日期。
範例
#i nclude
main()
{
time_t timep;
time (&timep);
printf("%s",asctime(gmtime(&timep)));
}
執行
Sat Oct 28 02:10:06 2000


ctime(將時間和日期以字元串格式表示)
相關函數
time,asctime,gmtime,localtime
表頭文件
#i nclude
定義函數
char *ctime(const time_t *timep);
函數說明
ctime ()將參數timep所指的time_t結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果以字元串形態返回。
此函數已經由時區轉換成當地時間,字元串格式為"Wed Jun 30 21 :49 :08 1993\n"。若再調用相關的時間日期函數,此字元串可能會被破壞。
返回值
返回一字元串表示目前當地的時間日期。
範例
#i nclude
main()
{
time_t timep;
time (&timep);
printf("%s",ctime(&timep));
}
執行
Sat Oct 28 10 : 12 : 05 2000


gettimeofday(取得目前的時間)
相關函數
time,ctime,ftime,settimeofday
表頭文件
#i nclude
#i nclude
定義函數
int gettimeofday ( struct timeval * tv , struct timezone * tz )
函數說明
gettimeofday()會把目前的時間有tv所指的結構返回,當地時區的信息則放到tz所指的結構中。
timeval結構定義為:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
timezone 結構定義為:
struct timezone{
int tz_minuteswest; /*和Greenwich 時間差了多少分鍾*/
int tz_dsttime; /*日光節約時間的狀態*/
};
上述兩個結構都定義在/usr/include/sys/time.h。tz_dsttime 所代表的狀態如下
DST_NONE /*不使用*/
DST_USA /*美國*/
DST_AUST /*澳洲*/
DST_WET /*西歐*/
DST_MET /*中歐*/
DST_EET /*東歐*/
DST_CAN /*加拿大*/
DST_GB /*大不列顛*/
DST_RUM /*羅馬尼亞*/
DST_TUR /*土耳其*/
DST_AUSTALT /*澳洲(1986年以後)*/
返回值
成功則返回0,失敗返回-1,錯誤代碼存於errno。附加說明EFAULT指針tv和tz所指的內存空間超出存取許可權。
範例
#i nclude
#i nclude
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf("tv_sec; %d\n", tv,.tv_sec) ;
printf("tv_usec; %d\n",tv.tv_usec);
printf("tz_minuteswest; %d\n", tz.tz_minuteswest);
printf("tz_dsttime, %d\n",tz.tz_dsttime);
}
執行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0


gmtime(取得目前時間和日期)
相關函數
time,asctime,ctime,localtime
表頭文件
#i nclude
定義函數
struct tm*gmtime(const time_t*timep);
函數說明
gmtime()將參數timep 所指的time_t 結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。
結構tm的定義為
struct tm
{
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;
};
int tm_sec 代表目前秒數,正常范圍為0-59,但允許至61秒
int tm_min 代表目前分數,范圍0-59
int tm_hour 從午夜算起的時數,范圍為0-23
int tm_mday 目前月份的日數,范圍01-31
int tm_mon 代表目前月份,從一月算起,范圍從0-11
int tm_year 從1900 年算起至今的年數
int tm_wday 一星期的日數,從星期一算起,范圍為0-6
int tm_yday 從今年1月1日算起至今的天數,范圍為0-365
int tm_isdst 日光節約時間的旗標
此函數返回的時間日期未經時區轉換,而是UTC時間。
返回值
返回結構tm代表目前UTC 時間
範例
#i nclude
main(){
char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
time_t timep;
struct tm *p;
time(&timep);
p=gmtime(&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);
}
執行
2000/10/28 Sat 8:15:38


localtime(取得當地目前時間和日期)
相關函數
time, asctime, ctime, gmtime
表頭文件
#i nclude
定義函數
struct tm *localtime(const time_t * timep);
函數說明
localtime()將參數timep所指的time_t結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。
結構tm的定義請參考gmtime()。此函
數返回的時間日期已經轉換成當地時區。
返回值
返回結構tm代表目前的當地時間。
範例
#i nclude
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),( l+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);
}
執行
2000/10/28 Sat 11:12:22


mktime(將時間結構數據轉換成經過的秒數)
相關函數
time,asctime,gmtime,localtime
表頭文件
#i nclude
定義函數
time_t mktime(strcut tm * timeptr);
函數說明
mktime()用來將參數timeptr所指的tm結構數據轉換成從公元1970年1月1日0時0分0 秒算起至今的UTC時間所經過的秒數。
返回值
返回經過的秒數。
範例
/* 用time()取得時間(秒數),利用localtime()
轉換成struct tm 再利用mktine()將struct tm轉換成原來的秒數*/
#i nclude
main()
{
time_t timep;
strcut tm *p;
time(&timep);
printf("time() : %d \n",timep);
p=localtime(&timep);
timep = mktime(p);
printf("time()->localtime()->mktime():%d\n",timep);
}
執行
time():974943297
time()->localtime()->mktime():974943297


settimeofday(設置目前時間)
相關函數
time,ctime,ftime,gettimeofday
表頭文件
#i nclude
#i nclude
定義函數
int settimeofday ( const struct timeval *tv,const struct timezone *tz);
函數說明
settimeofday()會把目前時間設成由tv所指的結構信息,當地時區信息則設成tz所指的結構。詳細的說明請參考gettimeofday()。
注意,只有root許可權才能使用此函數修改時間。
返回值
成功則返回0,失敗返回-1,錯誤代碼存於errno。
錯誤代碼
EPERM 並非由root許可權調用settimeofday(),許可權不夠。
EINVAL 時區或某個數據是不正確的,無法正確設置時間。


time(取得目前的時間)
相關函數
ctime,ftime,gettimeofday
表頭文件
#i nclude
定義函數
time_t time(time_t *t);
函數說明
此函數會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過的秒數。如果t 並非空指針的話,
此函數也會將返回值存到t指針所指的內存。
返回值
成功則返回秒數,失敗則返回((time_t)-1)值,錯誤原因存於errno中。
範例
#i nclude
mian()
{
int seconds= time((time_t*)NULL);
printf("%d\n",seconds);
}

Date and Time Functions: <time.h>
The header <time.h> declares types and functions for manipulating date and time. Some functions process local time,
which may differ from calendar time, for example because of time zone. clock_t and time_t are arithmetic types
representing times, and struct tm holds the components
of a calendar time:
int tm_sec; seconds after the minute (0,61)
int tm_min; minutes after the hour (0,59)
int tm_hour; hours since midnight (0,23)
int tm_mday; day of the month (1,31)
int tm_mon; months since January (0,11)
int tm_year; years since 1900
int tm_wday; days since Sunday (0,6)
int tm_yday; days since January 1 (0,365)
int tm_isdst; Daylight Saving Time flag

tm_isdst is positive if Daylight Saving Time is in effect, zero if not, and negative if the information is not available.

clock_t clock(void)
clock returns the processor time used by the program since the beginning of execution, or -1 if unavailable.
clock()/CLK_PER_SEC is a time in
seconds.

time_t time(time_t *tp)
time returns the current calendar time or -1 if the time is not available. If tp is not NULL,
the return value is also assigned to *tp.

double difftime(time_t time2, time_t time1)
difftime returns time2-time1 expressed in seconds.

time_t mktime(struct tm *tp)
mktime converts the local time in the structure *tp into calendar time in the same representation used by time.
The components will have values
in the ranges shown. mktime returns the calendar time or -1 if it cannot be represented.
The next four functions return pointers to static objects that may be overwritten by other calls.
char *asctime(const struct tm *tp)
asctime*tp into a string of the form
Sun Jan 3 15:14:13 1988\n\0

char *ctime(const time_t *tp)
ctime converts the calendar time *tp to local time; it is equivalent to
asctime(localtime(tp))

struct tm *gmtime(const time_t *tp)
gmtime converts the calendar time *tp into Coordinated Universal Time (UTC). It returns NULL if UTC is not available.
The name gmtime has historical significance.

struct tm *localtime(const time_t *tp)
localtime converts the calendar time *tp into local time.

size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp)
strftime formats date and time information from *tp into s according to fmt, which is analogous to a printf format.
Ordinary characters (including the terminating '\0') are copied into s. Each %c is replaced as described below,
using values appropriate for the local environment.
No more than smax characters are placed into s. strftime returns the number of characters, excluding the '\0',
or zero if more than smax characters were proced.
%a abbreviated weekday name.
%A full weekday name.
%b abbreviated month name.
%B full month name.
%c local date and time representation.
%d day of the month (01-31).
%H hour (24-hour clock) (00-23).
%I hour (12-hour clock) (01-12).
%j day of the year (001-366).
%m month (01-12).
%M minute (00-59).
%p local equivalent of AM or PM.
%S second (00-61).
%U week number of the year (Sunday as 1st day of week) (00-53).
%w weekday (0-6, Sunday is 0).
%W week number of the year (Monday as 1st day of week) (00-53).
%x local date representation.
%X local time representation.
%y year without century (00-99).
%Y year with century.
%Z time zone name, if any.
%% %

『叄』 如何使用C語言settime函數(就是用來設置系統的時間)

1、函數名: settime

功 能: 設置系統時間

原型:void settime

2、常式:

#include<stdio.h>
#include<dos.h>
intmain(void)
{
structtimet;
gettime(&t);
printf("Thecurrentminuteis:%d ",t.ti_min);
printf("Thecurrenthouris:%d ",t.ti_hour);
printf(":%d ",t.ti_hund);
printf("Thecurrentsecondis:%d ",t.ti_sec);
/**/
t.ti_min++;
settime(&t);//設置系統時間
return0;
}

『肆』 c語言怎麼設置linux系統時間

可以調用函數

settimeofday

intsettimeofday(conststructtimeval*tv,conststructtimezone*tz);
structtimeval{
time_ttv_sec;/*secondssinceJan.1,1970*/
suseconds_ttv_usec;/*微妙*/
};

也可以用system調用系統命令date

『伍』 C語言編程如何設置時間

struct tm *tm; time_t t;
char timebuf[20]
memset(timebuf,0,sizeof(timebuf));
time(&t);
tm = localtime(&t);

strftime(timebuf,15,"%Y%m%d%H%M%S",tm);
printf("current time is [%s]",timebuf);

『陸』 C語言時間,怎麼把time_t類型的時間,轉化成年、月、日、時、分、秒呢

可以使用gmtime函數或localtime函數將time_t類型的時間日期轉換為struct tm類型(年、月、日、時、分、秒)。
使用time函數返回的是一個long值,該值對用戶的意義不大,一般不能根據其值確定具體的年、月、日等數據。gmtime函數可以方便的對time_t類型數據進行轉換,將其轉換為tm結構的數據方便數據閱讀。gmtime函數的原型如下:struct tm *gmtime(time_t *timep);localtime函數的原型如下:struct tm *localtime(time_t *timep);將參數timep所指的time_t類型信息轉換成實際所使用的時間日期表示方法,將結果返回到結構tm結構類型的變數。gmtime函數用來存放實際日期時間的結構變數是靜態分配的,每次調用gmtime函數都將重寫該結構變數。如果希望保存結構變數中的內容,必須將其復制到tm結構的另一個變數中。gmtime函數與localtime函數的區別:gmtime函數返回的時間日期未經時區轉換,是UTC時間(又稱為世界時間,即格林尼治時間)。localtime函數返回當前時區的時間。
轉換日期時間表示形式time_t類型轉換為struct tm類型示例:
#include <stdio.h>
#include <time.h>
int main()
{
char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};/*指針字元數組*/ time_t t;
struct tm *p;
t=time(NULL);/*獲取從1970年1月1日零時到現在的秒數,保存到變數t中*/ p=gmtime(&t); /*變數t的值轉換為實際日期時間的表示格式*/
printf("%d年%02d月%02d日",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(" %s ", wday[p->tm_wday]);
printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec);
return 0;
}
注意:p=gmtime(&t);此行若改為p=localtime(&t);則返回當前時區的時間。

『柒』 跪求C語言編寫的時鍾(能修改時鍾時間,且時鍾是指針式的 只編寫修改時間的部分也行)

////////////////////////////////////////////

//程序名稱:鍾表模擬程序(表針形式)

//編譯環境:VisualC++6.0,EasyX2011驚蟄版

//程序編寫:BestAns<[email protected]>

//最後更新:2010-10-30

//

#include

<graphics.h>

#include

<conio.h>

#include

<math.h>


#define

PI

3.1415926536


void

DrawHand
(
int
hour
,

int
minute
,

int
second
)

{


double
a_hour
,
a_min
,
a_sec
;





//時、分、秒針的弧度值


int
x_hour
,
y_hour
,
x_min
,
y_min
,
x_sec
,
y_sec
;

//時、分、秒針的末端位置




//計算時、分、秒針的弧度值


a_sec
=
second
*

2

*
PI
/

60
;


a_min
=
minute
*

2

*
PI
/

60

+
a_sec
/

60
;


a_hour
=
hour
*

2

*
PI
/

12

+
a_min
/

12
;




//計算時、分、秒針的末端位置


x_sec
=

int
(
120

*

sin
(
a_sec
));

y_sec
=

int
(
120

*

cos
(
a_sec
));


x_min
=

int
(
100

*

sin
(
a_min
));

y_min
=

int
(
100

*

cos
(
a_min
));


x_hour
=

int
(
70

*

sin
(
a_hour
));

y_hour
=

int
(
70

*

cos
(
a_hour
));




//畫時針


setlinestyle
(
PS_SOLID
,
NULL
,

10
);


setcolor
(
WHITE
);


line
(
320

+
x_hour
,

240

-
y_hour
,

320

-
x_hour
/

7
,

240

+
y_hour
/

7
);




//畫分針


setlinestyle
(
PS_SOLID
,
NULL
,

6
);


setcolor
(
LIGHTGRAY
);


line
(
320

+
x_min
,

240

-
y_min
,

320

-
x_min
/

5
,

240

+
y_min
/

5
);




//畫秒針


setlinestyle
(
PS_SOLID
,
NULL
,

2
);


setcolor
(
RED
);


line
(
320

+
x_sec
,

240

-
y_sec
,

320

-
x_sec
/

3
,

240

+
y_sec
/

3
);

}


void

DrawDial
()

{


//繪制一個簡單的表盤


circle
(
320
,

240
,

2
);


circle
(
320
,

240
,

60
);


circle
(
320
,

240
,

160
);


outtextxy
(
296
,

310
,

"BestAns"
);




//繪制刻度


int
x
,
y
;


for

(
int
i
=
0
;
i
<
60
;
i
++)


{



x
=

320

+

int
(
145

*

sin
(
PI
*

2

*
i
/

60
));



y
=

240

+

int
(
145

*

cos
(
PI
*

2

*
i
/

60
));






if

(
i
%

15

==

0
)




bar
(
x
-

5
,
y
-

5
,
x
+

5
,
y
+

5
);



else

if

(
i
%

5

==

0
)




circle
(
x
,
y
,

3
);



else




putpixel
(
x
,
y
,
WHITE
);


}

}


void

main
()

{


initgraph
(
640
,

480
);


//初始化640x480的繪圖窗口




DrawDial
();





//繪製表盤




setwritemode
(
R2_XORPEN
);

//設置XOR繪圖模式




//繪製表針


SYSTEMTIME

ti
;




//定義變數保存當前時間


while
(!
kbhit
())




//按任意鍵退出鍾表程序


{



GetLocalTime
(&
ti
);


//獲取當前時間



DrawHand
(
ti
.
wHour
,
ti
.
wMinute
,
ti
.
wSecond
);

//畫表針



Sleep
(
1000
);



//延時1秒



DrawHand
(
ti
.
wHour
,
ti
.
wMinute
,
ti
.
wSecond
);

//擦表針(擦表針和畫表針的過程是一樣的)


}




closegraph
();




//關閉繪圖窗口

}

其了就是用了easyx

『捌』 c語言 怎樣更改系統時間

使用SetSystemTime()函數啊,將sys參數的wYear,wMonth,wDay,wHour,wMinute,wSecond等加1後,調用SetSystemTime(&sys);