- Related Questions & Answers
- 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 calculate number of days between two dates using Python?
- How do I get the number of days between two dates in JavaScript?
- Find the number of logins between two dates in MySQL
- PHP program to find the total number of date between any two given dates
- PHP program to find number of days in every week between two given date ranges
- How to count days between two dates in Java
- What is the way to find business days between two specified dates in MySQL?
- Find objects between two dates in MongoDB?
- Get the SUM of records between two given dates in MySQL
- Calculate minutes between two dates in C#
- How to get number of quarters between two dates in Java
- How can I calculate full 24hour days between two specified dates in MySQL?

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

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,**

date1[] = {13, 3, 2021}, date2[] = {24, 5, 2023}

802

The difference is 2 years , 2 months (3 - 5) and 11 days.

2*356 + (30 + 31) + 11 = 802

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.

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.

Number of days till the first day of the year date1[2]

Number of days = 365*(years) + no. of leap year

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.

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,**

#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; }

The number of days between two dates is 802

Advertisements