首先打開vs2013,發(fā)現(xiàn)有新建項目

創(chuàng)新互聯(lián)主營漳浦網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,漳浦h5小程序設(shè)計搭建,漳浦網(wǎng)站營銷推廣歡迎漳浦等地區(qū)企業(yè)咨詢
和
打開項目
的選項,選擇新建項目。
之后會有一個新建項目的界面,左側(cè)有各種語言的編寫環(huán)境,比如vb,vc#,vc++,如果編寫c語言就選擇vc++,因為c++基本兼容c語言。這時的項目不用添加后綴,這相當(dāng)于一個大的工程。
選擇好類型,寫好項目名稱之后點擊確定。
點擊下一步
這里比較關(guān)鍵。勾上空項目,不選的話因為程序會默認為你添加一些代碼,用不上有時會編譯出錯。比較適合初學(xué)者。
這時已經(jīng)新建好一個項目了,右鍵源文件添加新建項。
添加新建項之后命名,c語言的代碼一定要修改后綴,將.cpp改為.c,向程序說明這時一個c語言代碼。
寫好代碼后調(diào)試運行,如果沒有寫讓程序停留的代碼就不要直接按f5,你可以按ctrl+f5調(diào)試。
平時默認為debug,如果開發(fā)完成一個程序后給別人使用就要選擇release版的調(diào)試,這樣別人在沒有vs的環(huán)境下也可以使用。
分享
#include?time.h
#include?stdio.h
time_t?_mktime(?char?*slTime?)?/**?yyyy-mm-dd?**/
{
struct?tm?tm_t;
int?year;
int?mon;
int?day;
sscanf(?slTime,?"%4d-%2d-%2d",?year,?mon,?day?);
tm_t.tm_year?=?year?-?1900;
tm_t.tm_mon?=?mon?-?1;
tm_t.tm_mday?=?day;
tm_t.tm_hour?=?12;
tm_t.tm_min?=?00;
tm_t.tm_sec?=?01;
tm_t.tm_wday?=?0;
tm_t.tm_yday?=?0;
tm_t.tm_isdst?=?0;
return?mktime(?tm_t?);
}
int?daydiff(?char?*date1,?char?*date2?)?/**?yyyy-mm-dd?**/
{
time_t?t1?=?_mktime(?date1?);
time_t?t2?=?_mktime(?date2?);
time_t?diff?=?abs(?t2?-?t1?);
return?(int)(?diff?/?(24*60*60)?);
}
int?main()
{
char?date1[12],?date2[12];
printf(?"input?date1:?"?);
scanf(?"%s",?date1?);
fflush(?stdin?);
printf(?"input?date2:?"?);
scanf(?"%s",?date2?);
fflush(?stdin?);
printf(?"%s?-?%s?is?%d?days\n",?date1,?date2,?daydiff(date1,?date2)?);
}
#include stdio.h
#include stdlib.h
#include time.h
void main()
{
unsigned char time1[] = {?10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( t1 );
_t2 = _mkgmtime( t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分鐘\n", diff / 60 );
}
擴展資料:
C語言中有兩個相關(guān)的函數(shù)用來計算時間差,分別是:
time_t time( time_t *t)? ?與 clock_t clock(void)
頭文件: time.h
計算的時間單位分別為: s? ?, ms
time_t 和 clock_t 是函數(shù)庫time.h 中定義的用來保存時間的數(shù)據(jù)結(jié)構(gòu)
返回值:
1、time? : 返回從公元1970年1月1號的UTC時間從0時0分0秒算起到現(xiàn)在所經(jīng)過的秒數(shù)。如果參數(shù) t 非空指針的話,返回的時間會保存在 t 所指向的內(nèi)存。
2、clock:返回從“開啟這個程序進程”到“程序中調(diào)用clock()函數(shù)”時之間的CPU時鐘計時單元(clock tick)數(shù)。? ? ?1單元 = 1 ms。
所以我們可以根據(jù)具體情況需求,判斷采用哪一個函數(shù)。
具體用法如下例子:
#include time.h
#include stdio.h
#include stdlib.h
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock();? ? //! 單位為ms
t_start = time(NULL);? //! 單位為s
system("pause");
c_end? ?= clock();
t_end = time(NULL);
//!difftime(time_t, time_t)返回兩個time_t變量間的時間間隔,即時間差
printf("The pause used %f ms by clock()\n",difftime(c_end,c_start));
printf("The pause used %f s by time()\n",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要計算某一函數(shù)塊的占用時間時,只需要在執(zhí)行該函數(shù)塊之前和執(zhí)行完該函數(shù)塊之后調(diào)用同一個時間計算函數(shù)。再調(diào)用函數(shù)difftime()計算兩者的差,即可得到耗費時間。
main()
{
struct date date1,date2;
int days,days1=0,days2=0;
int daytab[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i;
//大概如此可能部分下標(biāo)存在錯誤,自己調(diào)試修改吧
scanf("%d%d%d",date1.year,date1.month,date1.day);
scanf("%d%d%d",date2.year,date2.month,date2.day);
//計算從當(dāng)年元月1日到的天數(shù)
for(i=0;idate1.month;i++)
{
days1 += daytab[i];
}
if((date1.year%4==0date1.year%100!=0)||(date1.year%400==0) date1.month2)
{
days1++;
}
days1 += date1.day;
//
for(i=date1.year;idate2.year;i++)
{
days2 += 365;
if((date2.year%4==0date2.year%100!=0)||(date2.year%400==0))
{
days2++;
}
}
for(i=0;idate2.month;i++)
{
days2 += daytab[i];
}
if((date2.year%4==0date2.year%100!=0)||(date2.year%400==0) date2.month2)
{
days2 ++;
}
days2 += date1.day;
days=day2-day1;
printf("%d\n",days);
}
計算兩個年月日之間的天數(shù),思路是分別算出日期的總天數(shù)然后相減。
要考慮閏年的情況,判斷閏年的口訣:4年一閏,100年不閏,400年再閏。
((year % 4 == 0 year % 100 != 0) || year % 400 == 0)
網(wǎng)上找了一個(偷懶= =!),修改下如下:
#include stdio.h
int sum(int y,int m,int d)
{
unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i,s=0;
for(i=1;iy;i++)
if(i%4==0 i%100!=0 || i%400==0)
s+=366;//閏年
else
s+=365;//平年
if(y%4==0 y%100!=0 || y%400==0)
x[2]=29;
for(i=1;im;i++)
s+=x[i];//整月的天數(shù)
s+=d;//日的天數(shù)
return s;//返回總天數(shù),相對公元1年
}
void main()
{
unsigned char y1,m1,d1,y2,m2,d2;
int s1,s2;
printf("輸入第一個年 月 日:");
scanf("%d %d %d",y1,m1,d1);
printf("輸入第二個年 月 日:");
scanf("%d %d %d",y2,m2,d2);
s1=sum(y1,m1,d1);
s2=sum(y2,m2,d2);
if (s1 s2)
printf("相差天數(shù):%ld\n",s1-s2);
else
printf("相差天數(shù):%ld\n",s2-s1);
}
以上代碼VC6編譯測試通過。
雖然這個思路顯得有些笨,但是其它算法,代碼太長太復(fù)雜,要考慮多種情況,不如直接算兩個日期距離公元元年1月1日的天數(shù),然后相減
#include?stdio.h
#include?stdlib.h
#include?string.h
#include?math.h
#include?time.h
int??get_days(const?char*?from,?const?char*?to);
time_t?convert(int?year,int?month,int?day);
int?main()
{
const?char*?from="2013-3-15";
const?char*?to="2015-8-14";
int?days=get_days(from,to);
printf("From:%s\nTo:%s\n",from,to);
printf("%d\n",days);
return?0;
}
time_t?convert(int?year,int?month,int?day)
{
struct?tm?info={0};
info.tm_year=year-1900;
info.tm_mon=month-1;
info.tm_mday=day;
return?mktime(info);
}
int??get_days(const?char*?from,?const?char*?to)
{
int?year,month,day,fromSecond,toSecond;
sscanf(from,"%d-%d-%d",year,month,day);
fromSecond=(int)convert(year,month,day);
sscanf(to,"%d-%d-%d",year,month,day);
toSecond=(int)convert(year,month,day);
return?(toSecond-fromSecond)/24/3600;
}
From:2013-3-15
To:2015-8-14
882
Press?any?key?to?continue
這才算是用了庫函數(shù)了···
本文標(biāo)題:日期差函數(shù)怎么求c語言,日期差函數(shù)的使用方法
文章轉(zhuǎn)載:http://chinadenli.net/article7/dsgdjij.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、定制網(wǎng)站、網(wǎng)站排名、自適應(yīng)網(wǎng)站、小程序開發(fā)、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)