1. c語言中的時間相加
思路:
1.將兩個數分為前兩位和後兩位。
2.後兩位先相加,如果超過60,則減去60,並進一位。
3.前兩位相加還要加上進位,如果超過24,則減去24.
4.將前兩位和後兩位組合,形成最終要輸出的形式
完整的程序代碼如下,不懂之處可以看註解:
#include<stdio.h>
voidmain()
{
inta,b,c,d,e,f,ab,ce,df;
inti=0;
printf("Inputtwonumber: ");//輸入兩行數據,每行一個整數。
scanf("%d%d",&a,&b);//a代表第一個數,b代表第二個數
c=a/100;//c代表a的前兩位數
d=a%100;//d代表a的後兩位數
e=b/100;//e代表b的前兩位數
f=b%100;//f代表b的後兩位數
df=d+f;
if(df>=60)//如果後兩位相加超過60,則減去60,並進一位。
{
df-=60;
i++;
}
ce=c+e+i;
if(ce>=24)//如果前兩位相加超過24,則減去24。
{
ce-=24;
}
ab=ce*100+df;//最後需要輸出的數據
printf("Theoutputis: %d ",ab);
}
ps:運行結果如下:
2. c語言中時間處理
穩定超頻,要看是什麼CPU了,主板,電源,散熱器,都很重要,因為超頻後功耗變高,對主板也是一種考驗,看主板CPU供電相數,電源功率,功耗變高,溫度也會變高了,好的散熱器才能壓的住,一般CPU超頻都有一個最大電壓值,一般來說,電壓相對低的,能達到更高的倍頻或者外頻的CPU體質比較好,再一個是穩定性,超頻後要經過各種測試,穩定的同時也要控制溫度。一般CPU要注意的就是CPU電壓,防掉電自動加壓,倍頻或者外頻數值。
3. c語言如何計算兩個時間相差多少
任意輸入兩個24小時制的時間,輸出兩個時間的時間差;
4. c語言中怎麼將時間相加啊,輸入兩組時間,時分秒用空格隔開,輸出的值也用空格隔開
時間相加,判斷起來比較麻煩,也容易出錯,我常用的方法是用mktime先轉換成秒,然後相加或者相減,再把結果轉換成時間就行
5. C語言輸入兩個時間(同一天的兩個時和分),計算其時間差,輸出相差幾小時幾分鍾
/**
time.c
定義一個結構體實現兩個時間的加減
*/
#include<stdio.h>
#include<string.h>
typedef struct
{
int seconds;
int minutes;
int hours;
}Time;
int checkTime(Time time);
void printTime(Time time);
void swap(Time *time1,Time *time2);//大的時間放在前面
Time subtract1(Time *first,Time *second);
Time subtract(Time *first,Time *second);//默認第一個時間比第二個大
int main()
{
Time time1;
Time time2;
Time time3;
char againch[5]="y";
while(strcmp(againch,"y")==0||strcmp(againch,"Y")==0)
{
int again=1;
while(again)
{
printf("輸入時間1:");
scanf("%d:%d:%d",&time1.hours,&time1.minutes,&time1.seconds);
if(checkTime(time1))
{
printf("-----輸入時間格式錯誤!請重新輸入 ");
again=1;
}
else
again=0;
}
again=1;
while(again)
{
printf("輸入時間2:");
scanf("%d:%d:%d",&time2.hours,&time2.minutes,&time2.seconds);
if(checkTime(time2))
{
printf("-----輸入時間格式錯誤!請重新輸入 ");
again=1;
}
else
again=0;
}
swap(&time1,&time2);
printf(" ");
printTime(time1);
printf(" - ");
printTime(time2);
time3=subtract(&time1,&time2);
printf(" = ");
printTime(time3);
printf(" ");
printf("繼續[y/n]?:");
scanf("%s",againch);
}
return 0;
}
//檢查時間的格式
int checkTime(Time time)
{
// printf("小時格式錯誤:%d ",(time.hours>=24||time.hours<0));
// printf("分鍾格式錯誤:%d ",(time.minutes>=60||time.minutes<0));
// printf("秒格式錯誤 :%d ",(time.seconds>=60||time.minutes<0));
return ((time.hours>24||time.hours<0)||(time.minutes>=60||time.minutes<0)||(time.seconds>=60||time.minutes<0));
}
//輸出按個數輸出時間
void printTime(Time time)
{
printf("%d:%d:%d",time.hours,time.minutes,time.seconds);
}
//大的時間放到第一個變數,小的時間方法哦第二個變數
void swap(Time *time1,Time *time2)
{
//保證第一個時間永遠大於第二個時間
if(time2->hours>time1->hours)//如果有time
{
//交換兩個時間的小時
time2->hours^=time1->hours;
time1->hours^=time2->hours;
time2->hours^=time1->hours;
//交換兩個時間的分鍾:
time1->minutes^=time2->minutes;
time2->minutes^=time1->minutes;
time1->minutes^=time2->minutes;
//交換兩個時間的秒:
time1->seconds^=time2->seconds;
time2->seconds^=time1->seconds;
time1->seconds^=time2->seconds;
}
else if(time2->minutes>time1->minutes&&time1->hours==time2->hours)
{
//交換兩個時間的分鍾:
time1->minutes^=time2->minutes;
time2->minutes^=time1->minutes;
time1->minutes^=time2->minutes;
//交換兩個時間的秒:
time1->seconds^=time2->seconds;
time2->seconds^=time1->seconds;
time1->seconds^=time2->seconds;
}
else if(time2->seconds>time1->seconds&&time1->minutes==time2->minutes)
{
//交換兩個時間的秒:
time1->seconds^=time2->seconds;
time2->seconds^=time1->seconds;
time1->seconds^=time2->seconds;
}
}
//計算兩個時間的差
Time subtract(Time *first,Time *second)//默認第一個時間比第二個大
{
Time result;
//先對秒進行相減
if(first->seconds>=second->seconds)//如果第一個秒大於或者等於
{
result.seconds=first->seconds-second->seconds;
}
else//如果第一個的秒數小的話
{
first->minutes=first->minutes-1;//借位
first->seconds=first->seconds+60;
result.seconds=first->seconds-second->seconds;
}
//接著對分鍾相減
if(first->minutes>=second->minutes)//如果第一個秒大於或者等於
{
result.minutes=first->minutes-second->minutes;
}
else//如果第一個的秒數小的話
{
first->hours=first->hours-1;//借位
first->minutes=first->minutes+60;
result.minutes=first->minutes-second->minutes;
}
//交換後 默認第一個小時會大於第一個,沒有借位的情況,不用
result.hours=first->hours-second->hours;
return result;
6. c語言時間函數的具體使用方法,時間的加減
#include<stdio.h>
#include<time.h>
intmain()
{
time_trawtime;
structtm*timeinfo;
time(&rawtime);
timeinfo=localtime(&rawtime);
printf("Thecurrentdate/timeis:%s",asctime(timeinfo));
return0;
}
說明:
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時間格式:
//就是直接列印tm,tm_year 從1900年計算,所以要加1900,月tm_mon,從0計算,所以要加1
7. 時間加減 C語言
在VC中我是這樣弄的:
SYSTEMTIME time;
::GetSystemTime(&time);\\取當前時間,time為一個臨時的變數
CTime now=time;\\將當前時間存到CTime變數中
\\輸入要進行對比的時間存入time中,比如下面(對比時間是2006年8月20日):
time.wYear=2006;
time.wMonth=8;
time.wDay=20;
CTime cmptime=time;\\將要對比的時間放到另一個CTime變數中
CTimeSpan overtime=now-cmptime;\\比較時,兩時間直接作差,保存在CTimeSpan變數中,這個值有正負,overtime雖然是CTimeSpan類型的,但是用法和CTime一樣
int overdays=overtime.GetDays();\\取天數差距,本例中就為9(今天是8月29日),如果剛才now-cmptime換成cmptime-now,現在的值就是-9
int overdays=overtime.GetMonths();同上,取月差距,其他方法一樣,年,分,秒都能比較
自己回去試一試吧,應該有滿意的效果!
我也是琢磨了很長時間才弄出來,個人覺得算是比較方便的方法了,正如你所說,時間的計算比較復雜,容易出錯,不如讓提供好的MFC類對時間進行處理,省去不必要的麻煩!
8. c語言題目 計算時間相減
很簡單嘛
#include<stdio.h>
int main()
{
int s_min,s_sec,e_min,e_sec;
printf("Please input the time\n");
scanf("%d:%d %d:%d",&s_min,&s_sec,&e_min,&e_sec);
printf("%d\n",abs((s_min-e_min)*60+s_sec-e_sec));//用個絕對值就OK啦
}
9. C語言中如何讓時間相加
#include <stdio.h>
int main()
{
int AH,AM,AS,BH,BM,BS,CH=0,CM=0,CS=0;
printf("請輸入時間A");
L1:
scanf("%d %d %d",&AH,&AM,&AS);
if(AH>60||AH<0||AM>60||AM<0||AS>60||AS<0)
{
printf("不合法的時間,請重新輸入");
goto L1;
}
printf("請輸入時間B");
L2:
scanf("%d %d %d",&BH,&BM,&BS);
if(BH>60||BH<0||BM>60||BM<0||BS>60||BS<0)
{
printf("不合法的時間,請重新輸入");
goto L2;
}
CS=BS+AS;
if(CS>=60)
{
CS=CS-60;
CM=AM+BM+1;
}
else
{
CM=AM+BM;
}
if(CM>=60)
{
CM=CM-60;
CH=AH+BH+1;
}
else
CH=AH+BH;
printf("時間和為:");
printf("%d,%d,%d",CH,CM,CS);
system("pause");
}
10. 求一段 日期時間類(時間加減轉換) 代碼的設計思路,有源碼更好(源碼語言 類C語言為好).
這是一個輸入輸出相互轉換的題型,年月日與讓天數相互轉換。
天數1.5為1900年1月1日 12:00時,1900年+1.5天
42576.85545表示2016/7/25 20:31.,用42576.85545除以365天約為116.648919041 +1900
可以這樣1900年加數字等於現在的時間,
1, 把數字分開,整數是天數,小數是小時,
2,用整數,判斷年月日,
2.1 if(190xx潤年?&&整數>=366)1900++;整數-=366;
2.2 不夠365開始判斷月份,
。。。。。。