Home »
C++ programs »
C++ Most popular & searched programs
C++ program to get previous date of given date
C++ program to find the previous date: this program will take a date and print its previous date.
[Last updated : February 26, 2023]
Getting the previous date of given date
Given a date in DD, MM and YYYY format, you have to find the previous date using C++ program.
Example:
Input: 30/6/2017
Output: 29/6/2017
Many times, we need to find the previous date in C/C++ programming, in this program we are writing code that will print the previous date, here current date or any date whose previous date we have to find.
Logic to get the previous date of a given date in C++
- If the day of the month is greater than 1 than its simple to find previous date, just subtract day by 1.
-
If the day is 1 then we have to check following conditions:
- Check the months, which have 31 days in last month, assign 31 to the day and subtract month by 1.
- If the month is 3 (March), check the leap year condition and assign 28 or 29 based on year to day and subtract month by 1.
- If the month is 1 (January) then assigns 31 to the day and assign 12 (December) to the month, subtract year by 1.
- If the month is 2 (February) then assign 31 to the day and subtract month by 1.
- And for other months define 30 to the days and subtract month by 1.
C++ code to get the previous date of given date
#include <iostream>
using namespace std;
// fnction to get previous date
void getPrevDate(int* day, int* month, int* year)
{
// if there is first day of month
if (*day == 1) {
// months which have 30 days in previous month
if (*month == 4 || *month == 6 || *month == 9 || *month == 11) {
*day = 31;
*month = *month - 1;
}
// for MARCH, to define february last day
else if (*month == 3) {
if (*year % 4 == 0)
*day = 29;
else
*day = 28;
*month = *month - 1;
}
// for January, to define December last day
else if (*month == 1) {
*day = 31;
*month = 12;
*year = *year - 1;
}
// for Feb, to define January last day
else if (*month == 2) {
*day = 31;
*month = *month - 1;
}
// for other months
else {
*day = 30;
*month = *month - 1;
}
}
// other days of month
else {
*day = *day - 1;
}
}
int main()
{
// date, assigning day, month and year
int dd = 1, mm = 1, yy = 2017;
// printing given date
cout << endl
<< "Date : " << dd << "/" << mm << "/" << yy;
// function call to get previous date
getPrevDate(&dd, &mm, &yy);
// printing previous date
cout << endl
<< "Previous date : " << dd << "/" << mm << "/" << yy;
return 0;
}
Output
Date : 30/6/2017
Previous date : 29/6/2017