Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 139 additions & 73 deletions date_lab.cpp
Original file line number Diff line number Diff line change
@@ -1,78 +1,144 @@
#include <iostream>
#include<iostream>
using namespace std;
class Date
{
int d,m,y;
public:
void read()
{
cout<<"Enter Date (d/m/y)\n";
cin>>d>>m>>y;
}
int check()
{
int f=0;
if(y>1000&&y<4000)
{
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d>0&&d<=31)
{
cout<<"Valid\n";
f=1;
}
else if((m==4||m==6||m==9||m==11)&&d>0&&d<31)
{
cout<<"Valid\n";
f=1;
}

else if(m==2)
{
if(y%4==0&&d>0&&d<=29)
{
cout<<"Valid\n";
f=1;
}
else if(d>0&&d<29)
{
cout<<"Valid\n";
f=1;
}
else
cout<<"Not Valid\n";
}

else
cout<<"Not Valid\n";
}
else
cout<<"Not Valid\n";
return f;
}
Date operator +(int n);
void show()
{
cout<<d<<"/"<<m<<"/"<<y;
}

class dates {
private:
int day, month, year, last;
public:
void input();
void Month();
void Day();
void output();
void valid();
void next()
{
if(m==1||m==3||m==5||m==7||m==8||m==10)
{
if(d<31)
d++;
else if(d==31)
{
m++;
d=1;
}
}

else if(m==4||m==6||m==9||m==11)
{
if(d<30)
d++;
else if(d==30)
{
m++;
d=1;
}
}
else if(m==2)
{
if(y%4==0)
{
if(d<29)
d++;
else if(d==29)
{
m++;
d=1;
}
}
else
{
if(d<28)
d++;
else if(d==28)
{
m++;
d=1;
}
}
}
else if(m==12)
{
if(d<31)
d++;
else if(d==31)
{
y++;
m=1;
d=1;
}
}

}
};

void dates::input() {
cout << "\nEnter the Date DD MM YYYY :";
cin >> day >> month >> year;
}
//Month
void dates::Month() {
if (month > 0 && month <= 12) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
last = 31;
Day();
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
last = 30;
Day();
} else if (month == 2) {
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
last = 29;
Day();
} else {
last = 28;
Day();
}
}
} else
cout << "Invalid";
}
//Day
void dates::Day() {
if (day > 0 && day <= last) {
valid();

} else
cout << "Invalid";
}
//output
void dates::output() {
if (day == last) {
if (month == 12) {
day = 1;
month = 1;
year++;
} else {
day = 1;
month++;
}
} else if (day != last) {
day++;
}
cout << day << "/" << month << "/" << year;
}
//valid
void dates::valid() {
cout << "\n Valid \n";
output();
}

int main() {
dates d;
d.input();
d.Month();

cout << "Hello world " << endl;

return 0;
Date Date::operator +(int n)
{
Date r;
r.d=d;
r.m=m;
r.y=y;
for(int i=0;i<n;i++)
{
r.next();
}
return r;
}
int main()
{
int f=1,n;
Date d;
d.read();
f=d.check();
if(f==1)
{
cout<<"Number of days to be added:";
cin>>n;
Date q=d+n;
q.show();
}
return 0;
}