C++實(shí)現(xiàn)兩個(gè)日期間差多少天的解決方法
計(jì)算原理是先求出每個(gè)日期距離1年1月1日的天數(shù)差值,再進(jìn)一步做差即可。
#include <stdio.h>
struct MyDate
{
int year;
int month;
int day;
};
int GetAbsDays(MyDate x)
{
int i;
int month_day[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int year = x.year-1; // 因?yàn)橛缶嚯x1年1月1日的距離
int days = year * 365 + year/4 - year/100 + year/400; //求得之前閏年的數(shù)量并在天數(shù)上進(jìn)行想加
if(x.year%4==0 && x.year%100!=0 || x.year%400==0) month_day[1]++; //當(dāng)前年為閏年,二月加 1
for(i=0; i<x.month-1; i++)
days += month_day[i];
days += x.day-1; //今天應(yīng)該是不算如天數(shù)計(jì)數(shù)
return days;
}
int GetDiffDays(MyDate a, MyDate b)
{
return GetAbsDays(b) - GetAbsDays(a);
}
int main(int argc, char* argv[])
{
MyDate a = {1842,5,18};
MyDate b = {2000,3,13};
int n = GetDiffDays(a,b);
printf("%d\n", n);
}
- C++自定義函數(shù)判斷某年某月某日是這一年中第幾天
- C++時(shí)間戳轉(zhuǎn)換成日期時(shí)間的步驟和示例代碼
- C++ boost 時(shí)間與日期處理詳細(xì)介紹
- C++實(shí)現(xiàn)日期類(Date類)的方法
- C++獲取當(dāng)前系統(tǒng)時(shí)間的方法總結(jié)
- C++中獲取UTC時(shí)間精確到微秒的實(shí)現(xiàn)代碼
- C++設(shè)置系統(tǒng)時(shí)間及系統(tǒng)時(shí)間網(wǎng)絡(luò)更新的方法
- C++實(shí)現(xiàn)當(dāng)前時(shí)間動(dòng)態(tài)顯示的方法
- VC++ 獲取系統(tǒng)時(shí)間的方法匯總
- C++取得當(dāng)前時(shí)間的方法
- C++基于蔡基姆拉爾森計(jì)算公式實(shí)現(xiàn)由年月日確定周幾的方法示例
相關(guān)文章
C語(yǔ)言模式實(shí)現(xiàn)C++繼承和多態(tài)的實(shí)例代碼
本篇文章主要介紹了C語(yǔ)言模式實(shí)現(xiàn)C++繼承和多態(tài)的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07重構(gòu)-C++實(shí)現(xiàn)矩陣的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄貥?gòu)-C++實(shí)現(xiàn)矩陣的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06opencv3/C++ 將圖片轉(zhuǎn)換為視頻的實(shí)例
今天小編就為大家分享一篇opencv3/C++ 將圖片轉(zhuǎn)換為視頻的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12C語(yǔ)言實(shí)現(xiàn)學(xué)生消費(fèi)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生消費(fèi)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08C++ 學(xué)習(xí)之旅 Windows程序內(nèi)部運(yùn)行原理
學(xué)習(xí)C++與.net不同的是,一定要搞清楚Windows程序內(nèi)部運(yùn)行原理,因?yàn)樗婕按蠖鄶?shù)是操作系統(tǒng)的調(diào)用,而.net畢竟是在.netFrameWork上唱戲2012-11-11