- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Find number of days between two given dates in C++
In this problem, we are given two arrays date1[] and date2 consisting of 3 integers which denote the DD-MM-YYYY of daes. Our task is to find the number of days between two given dates.
Let’s take an example to understand the problem,
Input
date1[] = {13, 3, 2021}, date2[] = {24, 5, 2023}
Output
802
Explanation
The difference is 2 years , 2 months (3 - 5) and 11 days.
2*356 + (30 + 31) + 11 = 802
Solution Approach
A simple solution to the problem is by looping, starting from the start date date1 to date2 counting the number of days. And returning the value. This approach is ok, but a more efficient approach can be there.
Efficient Approach
A more efficient approach to the problem is by counting the total number of days till both the dates date1[] and date2[]. And then the absolute difference between both gives the result.
To count the number of days till both date1[] from 01/01/0000.
YEAR
Number of days till the first day of the year date1[2]
Number of days = 365*(years) + no. of leap year
MONTH
For a number of days till the 1st day of the month. Count from month array.
Number of days = monthDays[date[1]].
monthDays will store the total number of days till the 1st date of the month.
DATE
Number of days.
Sum of all these gives the count of days till date date1[]. The difference between the counts is the result.
Program to illustrate the working of our solution,
Example
#include <iostream> #include <math.h> using namespace std; const int monthDays[12] = { 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }; int countLeapYearDays(int d[]){ int years = d[2]; if (d[1] <= 2) years--; return ( (years / 4) - (years / 100) + (years / 400) ); } int countNoOfDays(int date1[], int date2[]){ long int dayCount1 = (date1[2] * 365); dayCount1 += monthDays[date1[1]]; dayCount1 += date1[0]; dayCount1 += countLeapYearDays(date1); long int dayCount2 = (date2[2] * 365); dayCount2 += monthDays[date2[1]]; dayCount2 += date2[0]; dayCount2 += countLeapYearDays(date2); return ( abs(dayCount1 - dayCount2) ); } int main(){ int date1[3] = {13, 3, 2021}; int date2[3] = {24, 5, 2023}; cout<<"The number of days between two dates is "<<countNoOfDays(date1, date2); return 0; }
Output
The number of days between two dates is 802
- Related Articles
- Python program to find number of days between two given dates
- Finding Number of Days Between Two Dates JavaScript
- How to find the number of days and number of weeks between two dates in R?
- How to get the number of days between two Dates in JavaScript?
- How do I get the number of days between two dates in JavaScript?
- How do I calculate number of days between two dates using Python?
- How to count days between two dates in Java
- PHP program to find the total number of date between any two given dates
- Find the number of logins between two dates in MySQL
- PHP program to find number of days in every week between two given date ranges
- What is the way to find business days between two specified dates in MySQL?
- Find objects between two dates in MongoDB?
- How can I calculate full 24hour days between two specified dates in MySQL?
- Get the SUM of records between two given dates in MySQL
- Calculate the difference between two dates in days, weeks, months and years in Excel
