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

Ответы 2

  • Держи, PHP:

    class Date {

     private $день;

     private $месяц;

     private $год;

     function __construct() {

       $сегодня = new DateTime();

       $this->день = $сегодня->format('d');

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

       $this->год = $сегодня->format('Y');

     }

     public function Получить_год() { return $this->год; }

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

     public function Получить_день() { return $this->день; }

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

       return $this->год % 4 == 0 && ($this->год % 100 != 0 || $this->год % 400 == 0);

     }

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

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

       $this->день = $дата->format('d');

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

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

     }

    }

    $дата = new Date();

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

    $дата->Плюс_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
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years