Count number of days between two dates in C++

In this article, we will see how you can Count the days between two dates in C++.

Code:

In this code, the countLeapYears() function will check whether the given date is a leap year or not by checking the year

  • is a multiple of 4
  • multiple of 400 and not a
  • multiple of 100.

and the getDifference() function returns the number of days between the given two dates.

#include <iostream> 
using namespace std; 


struct Date { 
  int d, m, y; 
}; 

// storing all month days from January to December
const int monthDays[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; 


int countLeapYears(Date d) 
{ 
  int years = d.y; 

  // Checking if the current year is leap year or not 
  if (d.m <= 2) 
    years--; 

  return years / 4 - years / 100 + years / 400; 
} 


int getDifference(Date date1, Date date2) 
{ 
  // Before first date count total number of days
  long int n1 = date1.y * 365 + date1.d; 

  // Add days for months in given date 
  for (int i = 0; i < date1.m - 1; i++) 
    n1 += monthDays[i]; 

  // Adding a day for every leap year 
  n1 += countLeapYears(date1); 

  //count total number of days between first and second date
  long int n2 = date2.y * 365 + date2.d; 
  for (int i = 0; i < date2.m - 1; i++) 
    n2 += monthDays[i]; 
  n2 += countLeapYears(date2); 


  return (n2 - n1); 
} 

int main() 
{ 
  Date date1 = { 1, 2, 2024 }; 
  Date date2 = { 1, 3, 2024 };

  cout << "Difference between two dates is " << getDifference(date1, date2); 

  return 0; 
}

Output:

Difference between two dates is 29

Time Complexity: O(1)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top