/* */

Hi, I am

Ngô Tôn

I am a programmer.

Home / Programming / C/C++ / Xây dựng lớp Date mô tả thông tin ngày, tháng, năm

Xây dựng lớp Date mô tả thông tin ngày, tháng, năm

Yêu cầu:

Xây dựng một lớp Date mô tả thông tin về ngày, tháng, năm (month, day, year). Lớp Date gồm các hàm thành phần.
– Hàm tạo với ba tham số có giá trị ngầm định.
– Hàm in thông tin về ngày tháng dưới dạng dd-mm-yyyy
– Hàm nextDay() để tăng Date từng ngày một.

– Hàm validateDate() kiểm tra tính hợp lệ của yy/mm/yyyy

Code:
/************************************************************/

#include <iostream>
#include <iomanip>
#include <string.h>

using namespace std;

char month_table[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char leap_month_table[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

//check leap year or not
#define IS_LEAP_YEAR(year) ((year%400 == 0) || (year%4 == 0 && year%100 != 0))? true : false


class CDate
{
private:
int day;
int month;
int year;
public:
CDate(int d = 0, int m = 0, int y = 0): day(d), month(m), year(y)
{
}
~CDate()
{
}
void print()
{
cout << setfill ('0') << setw(2) << day << "-"
<< setfill ('0') << setw(2) <<month << "-"
<< setfill ('0') << setw(4) << year << endl;
}
void nextDay()
{
day++;
if (IS_LEAP_YEAR(year))
{
if (day > leap_month_table[month-1])
{
day = 1;
month++;
if (month > 12)
{
month = 1;
year++;
}
}
}
else
{
if (day > month_table[month-1])
{
day = 1;
month++;
if (month > 12)
{
month = 1;
year++;
}
}
}
}
bool validDate()
{
// validate dd/mm/yyyy
if (year < 1 || year > 9999 ||
month < 1 || month > 12 ||
day < 1 || day > 31)
{
return false;
}

if (IS_LEAP_YEAR(year))
{
if (day > leap_month_table[month-1])
{
return false;
}
}
else
{
if (day > month_table[month-1])
{
return false;
}
}
return true;
}
};

void main()
{
CDate date1(31, 12, 2000);
if (date1.validDate())
{
date1.print();

date1.nextDay();
date1.print();
}
else
{
cout << "Invalid Date";
}

system("pause");
}

Kết quả:

Yêu cầu: Xây dựng một lớp Date mô tả thông tin về ngày, tháng, năm (month, day, year). Lớp Date gồm các hàm thành phần. – Hàm tạo với ba tham số có giá trị ngầm định. – Hàm in thông tin về ngày tháng dưới dạng dd-mm-yyyy – Hàm nextDay() để tăng Date từng ngày một. – Hàm validateDate() kiểm tra tính hợp lệ của yy/mm/yyyy Code: Kết quả: [crayon-5befbffc4aa72450301004/]

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer. He is crazy about new gadgets and up to date with latest technology trends. Use comments to notify any issues you are facing.

Check Also

Xây dựng một lớp Time mô tả thông tin về giờ, phút giây

Yêu cầu: Xây dựng một lớp Time mô tả thông tin về giờ, phút giây. …

Leave a Reply

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