Написать класс Date, содержащий три поля: денек, месяц, год. С помощью

Написать класс Date, содержащий три поля: день, месяц, год. С поддержкою функций осуществить:
1) Проверку года на високосность
2) Увеличить дату на 5 дней

Задать свой вопрос
2 ответа

Держи, PHP:


class Date

 private денек;

 private месяц;

 private год;


 function __construct()

   сейчас = new DateTime();

   this-gt;денек = сейчас-gt;format('d');

   this-gt;месяц = сегодня-gt;format('m');

   this-gt;год = сейчас-gt;format('Y');

 


 public function Получить_год() return this-gt;год;

 public function Получить_месяц() return this-gt;месяц;

 public function Получить_денек() return this-gt;денек;


 public function Високосный_год()

   return this-gt;год % 4 == 0 amp;amp; (this-gt;год % 100 != 0 this-gt;год % 400 == 0);

 


 public function Плюс_5_дней()

   дата = new DateTime(strtotime(this-gt;год . '-' . sprintf('%02d', this-gt;месяц) . '-' . sprintf('%02d', this-gt;день)) + 60 * 60 * 24 * 5);

   this-gt;денек = дата-gt;format('d');

   this-gt;месяц = дата-gt;format('m');

   this-gt;год = дата-gt;format('Y');

 


дата = new Date();

echo дата-gt;Високосный() ? 'Високосный' : 'Не високосный';

дата-gt;Плюс_5_дней();

PascalABC.NET 3.4.2, сборка 1859 от 08.11.2018

Внимание! Если программа не работает, обновите версию!

type

 Date = class

 private

   Дата: System.DateTime;

 public

   день, месяц, год: integer;

   constructor(d, m, y: integer);

   begin

     try

       Дата := new System.DateTime(y, m, d);

       (денек, месяц, год) := (d, m, y);

     except

       Println('Недопустимая дата');

       (денек, месяц, год) := (1, 1, 0);

     end

   end;

   

   procedure ДобавитьДни(dd: integer);

   begin

     Дата := Дата.AddDays(dd);

     (денек, месяц, год) := (Дата.Day, Дата.Month, Дата.Year)

   end;

   

   function ГодВисокосный: boolean;

   begin

     if год mod 400 = 0 then Result := True

     else

     if год mod 100 = 0 then Result := False

     else Result := год mod 4 = 0

   end;

 

 end;


begin

 var (d, m, y) := ReadInteger3('Введите денек, месяц и год:');

 var dd := new Date(d, m, y);

 if dd.ГодВисокосный then Println('Год високосный')

 else Println('Год не високосный');

 dd.ДобавитьДни(5);

 Print('Новенькая дата', 'dd.Дата:dd.MM.yyyy')

end.

Пример

Введите денек, месяц и год: 9 11 2018

Год не високосный

Новая дата 14.11.2018

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт