1. 程式人生 > >C語言--求時間間隔

C語言--求時間間隔

這個是一個求時間間隔的函式,可能還不是很準確,因為是以秒數相除求解的。所以有待改進。。。
int getDay(int *diffday/*天數*/)
{
	time_t rawtime;
	struct tm nowdate, setdate;
	long dftime;
	long daysecond = 60*60*24;//一天的總秒數

	// 獲取當前時間
	time( &rawtime );
	nowdate = *localtime( &rawtime );
	nowdate.tm_mon = nowdate.tm_mon+1;
	printf("now year:%d, month:%d, day:%d\n",  nowdate.tm_year,  nowdate.tm_mon,  nowdate.tm_mday);

	// 給出指定時間
	setdate = *localtime( &rawtime );
	setdate.tm_hour = 0; setdate.tm_min = 0; setdate.tm_sec=0;
	setdate.tm_mon = 1; setdate.tm_mday = 1; setdate.tm_year = 114;//2014-1900
	printf("modify now year:%d, month:%d, day:%d\n", setdate.tm_year, setdate.tm_mon, setdate.tm_mday);

	// 計算兩個時間點之間的間隔秒數
	dftime = difftime(mktime(&nowdate), mktime(&setdate));
	printf("dftime=%ld, daysecond=%ld, result=%ld\n", dftime, daysecond, dftime / daysecond);
	*diffday/*天數*/ = (int)floor(dftime / daysecond);//通過計算秒數來確定所給天數(總秒數/一天所含秒數=天數)
	return 0;
}

相關推薦

C語言--時間間隔

這個是一個求時間間隔的函式,可能還不是很準確,因為是以秒數相除求解的。所以有待改進。。。int getDay(int *diffday/*天數*/) { time_t rawtime; struc

SDUT 1177 C語言實驗——時間間隔

next btn main -i top input acm sub none C語言實驗——時間間隔 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description

C語言實驗——時間間隔

從鍵盤輸入兩個時間點(24小時制),輸出兩個時間點之間的時間間隔,時間間隔用“小時:分鐘:秒”表示。 如:3點5分25秒應表示為–03:05:25.假設兩個時間在同一天內,時間先後順序與輸入無關。 提示:本題非常重要的一點是將時間全部轉換成相同單位進行計算,得出結果再轉換為時分秒的形式

山東理工大學ACM平臺題答案關於C語言 1177 C語言實驗——時間間隔

01:08:31 #include<stdio.h> #include<math.h> void main(){     int a[3],b[3];      int s,d,t;      int x,y,z,w;      scanf("%d:%d:%d",&a[0

C語言實驗——時間間隔 (sdut oj)

C語言實驗——時間間隔 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 從鍵盤輸入兩個時間點(24小時制),輸出

(4)C語言——最大連續子序列和

log spa clas 最大連續子序列和 alloc 最大 code max 連續 題目: 輸入一組整數,求出這組數字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那個序列。例如: 序列:-2 11 -4 13 -5 -2,則最大子序列和為20。 序列:-

C語言——最大公約數及最小公倍數

href 百度百科 代碼 ret temp max min 常見算法 urn 基本概念 最小公倍數:兩個或多個整數公有的倍數叫做它們的公倍數。整數a,b的最小公倍數記為[a,b],同樣的,a,b,c的最小公倍數記為[a,b,c],多個整數的最小公倍數也有同樣的記號。 最大

C語言——水仙花數

printf 余數 body 位與 number 水仙花 一次 語言 是否 昨天,雷老師偶有閑致,評講了n周前的C程序設計作業。其中講到了一到求水仙花數的題,給出了一種漂亮的算法,在此記錄下來。 原題 輸出所有的水仙花數,所謂水仙花數是指一個3位數,其各位數字立方和等於該數

C語言-最大值

main pan PE color 最大值 get eve else b- #include<stdio.h> void main() {int a,b,c,d; scanf("%d,%d,%d",&a,&b,&c);

c語言 第n個數的斐波拉契數

斐波拉契數是指一個數組中從第三個起,一個數等於他前兩位數的和,由這樣的有序數列叫斐波拉契數列。例如  //1 2 3 5 8 13 21 34 55 89   這就是1-10的斐波拉契數。 而在演算法中如何求得斐波拉契數需要知道最基本的定義,然後再寫演算法。 在斐波拉契數

c語言 圓周長 圓面積 圓球表面積 圓球體積 圓柱體積

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C語言給定範圍內的所有素數程式碼及解析

問題描述 求給定範圍start〜end之間的所有素數。 問題分析 判定一個整數m是否為素數的關鍵就是要判定整數m能否被除1和它自身以外的任何其他整數所整除,若都不能整除,則m即為素數。 本題求的是給定範圍start〜end之間的所有素數,考慮到程式的通用性,需要從鍵盤上輸入start和end值,例如輸

C語言最大公約數程式碼及解析

問題描述 從鍵盤輸入兩個整數,求任意兩個正整數的最大公約數(GCD)。 最大公因數,也稱最大公約數、最大公因子,指兩個或多個整數共有約數中最大的一個。a,b的最大公約數記為(a,b),同樣的,a,b,c的最大公約數記為(a,b,c),多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因

C語言勾股數程式碼及解析

問題描述 求150以內的所有勾股數。所謂勾股數,是指能夠構成直角三角形三條邊的三個正整數(a,b,c)。 問題分析 根據“勾股數”定義,所求三角形三邊應滿足條件 a2 + b2 = c2。可以在所求範圍內利用窮舉法找出滿足條件的數。 演算法分析 採用窮舉法求解時,最容易想到的一種方法是利用3個迴圈語

C語言100以內的素數

#include<stdio.h> int main() {int i,j,a[100]; for(i=1;i<100;i++) a[i]=i; for(i=2;i<100;i++) for(j=i+1;j<100;j++) if(a[j]!=0&

C語言 一個3*3的整形矩陣對角線元素之和

#include<stdio.h> int main() {int a[3][3],i,j,sum1=0,sum2=0; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=

C語言水仙花數程式碼解析

水仙花數 “水仙花數”又稱為“阿姆斯特朗數”。如果一個n(n≥3)位數的各位數字的n次冪之和等於該數本身,則該數稱為“水仙花數”。 問題描述 輸出所有的“水仙花數”,所謂的“水仙花數”是指一個三位數其各位數字的立方和等於該數本身,例如153是“水仙花數”,因為:153 = 13 + 53 + 33。

C語言迴文素數程式碼及解析

問題描述 所謂迴文素數指的是,對一個整數n從左向右和從右向左讀其數值都相同且n為素數,則稱整數為迴文素數。 對於偶數位的整數,除了11以外,都不存在迴文素數。即所有的4位整數、6位整數、 8位整數…都不存在迴文素數。下面列出兩位和三位整數中包含的所有迴文素數。 兩位迴文素數:11 三位迴文素數:101

c語言Sn=a+aa+aaa+….+aa..a(n個a)的值

#include <stdio.h> /* 程式理解:當a = 5,n = 5 進入for迴圈後, 依次執行: t = 5 sum = 5 t = 5*10 sum = 5+55 t = 55*10 sum = 5+55+555 t = 555*10 su

C語言階乘尾數零的個數

題目:100!的尾數有多少個零? 演算法分析: 不難發現,只要一個整數含有一個5因子,那麼就必然後會產生一個0,那麼就只要考慮1 ~ 100中5的倍數的數了。利用這個規律,題目很容易解決了。 程式碼: #include<stdio.h> int main() { i