Check if a date is a future date or not in C++

Hello, Coders!! In this section, we will discuss how we can check whether a date is a future date or not in C++.

Let’s briefly discuss the Date and Time functions and structure in C++ before diving into our main topic.

Date and Time functions and structure in C++

In C++ there is no standard library for the date and time functions. It inherits the functions and structs for date and time from the C language. We can access all the date and time functions and structures by including the <ctime> standard file in C++.

There are four types of time-related data types that are capable of representing the system’s time and date as an integer. (i.e. tm, size_t, time_t, clock_t)

We can get all the time and date data types in the tm structure, like tm_year(a year since 1900), tm_hour(an hour from 0 to 24), tm_mon(month of the year from 0 to 11), tm_yday(day since 1st January), ⁣tm_wday(day since Sunday) etc.

As for the functions, there are a lot of functions for date and time-related operations, but in this article, we will only discuss the time() function which will require later in our program.

The time() function is a C library function that returns the date and time elapsed since January 1, 1970, 00:00:00 UTC.

Syntax:

time_t time(time_t *t)

Program to check if a date is a future date or not in C++

  • In this program, we will define a function checkFutureDate() function that will take the year, month, and day as parameters and check whether that date is a future date or not.
#include<iostream>
#include<ctime>

using namespace std;

time_t now = time(0);
tm *ltm = localtime(&now);

bool checkFutureDate(int year, int month, int day) {
   

    if(year > (1900 + ltm->tm_year)) {
  
        return true;
    }
    else if(year == (1900 + ltm->tm_year)) { 
    
//adding 1900 to get the current year
        
        if(month > 1 + ltm->tm_mon) {
//adding 1 to get the current month
            return true;
        }
        else if(month == 1 + ltm->tm_mon) {
            
            if(day > ltm->tm_mday) {

                return true;
            }

            else {

                return false;
            }
        }
    }
}

int main() {
    int year,month,day;
    cout << "Enter The Date To Check:" << endl;

    cout << "Year: ";
    cin >> year;
    
    cout << "Month: ";
    cin >> month;
    
    cout << "Day: ";
    cin >> day;
    
    cout << "You Have Entered: " << day << "/" << month << "/" << year << endl;
    
    bool result = checkFutureDate(year,month,day);
    
    if(result == true) {
        
        cout << "This Is A Future Date" << endl;
    }
    else {
        cout << "This is not a Future Date" << endl;
    }
    
    return 0;
}

Output-1:

Enter The Date To Check:
Year: 2022
Month: 02
Day: 12
You Have Entered: 12/2/2022
This Is A Future Date

Output-2:

Enter The Date To Check:
Year: 2021
Month: 11
Day: 01
You Have Entered: 1/11/2021
This is not a Future Date

Hope you have enjoyed reading this article and learned how to check whether a date is a future date or not in C++.

Keep Codding!!

You can also read, Change date format in C++

Leave a Reply

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