Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получить число дней в месяце

Delphi , Синтаксис , Дата и Время

Получить число дней в месяце

Сидит программист в баре, пьет пиво. Подходит девушка и говорит так кокетливо:
- Молодой человек, не подскажете который час?
Программист смотрит на девушку мутно-ненавидящим взглядом и произносит, протягивая часы:
- Смотри САМА, там ВСЕ написано!


function DaysOfMonth(mm, yy: Integer): Integer; 
begin 
  if mm = 2 then  
  begin 
    Result := 28; 
    if IsLeapYear(yy) then Result := 29; 
  end  
  else  
  begin 
    if mm < 8 then  
    begin 
      if (mm mod 2) = 0 then 
        Result := 30 
      else 
        Result := 31; 
    end  
    else  
    begin 
      if (mm mod 2) = 0 then 
        Result := 31 
      else 
        Result := 30; 
    end; 
  end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  days: Integer; 
begin 
  days := DaysOfMonth(7, 2001); 
  ShowMessage('July 2001 has ' + IntToStr(days) + ' days'); 
end;

Привет! Вот перевод текста на русский язык:

Неплохой код на Delphi! Функция DaysOfMonth рассчитывает количество дней в заданном месяце и году. Вот как она работает: 1. Если месяц февраль (mm = 2), функция проверяет, является ли год високосным с помощью функции IsLeapYear. Если да, результат устанавливается в 29 дней; если нет, то в 28 дней. 2. Для месяцев, кроме февраля, функция проверяет, находится месяц до августа (mm < 8). Если так: * Если номер месяца четный (mod 2 = 0), результат устанавливается в 30 дней; иначе, в 31 день. 3. Для месяцев после июля (mm >= 8) функция следует аналогичной логике, но с 31 и 30 поменяными местами.

Процедура Button1Click демонстрирует, как использовать эту функцию, рассчитывая количество дней в июле 2001 года и отображая результат с помощью сообщения. В улучшении кода:

  • Функция может быть сделана более читаемой, извлекая логику для каждого месяца в отдельные функции или константы. Например, вы можете иметь функцию DaysInFebruary, которая возвращает 28 или 29 дней в зависимости от того, является ли год високосным.
  • Вам может понравиться добавить валидацию ввода, чтобы обеспечить, что значения месяца и года попадают в диапазон допустимых значений (1-12 для месяцев и 1-9999 для лет).
  • Функция IsLeapYear может быть заменена более эффективным алгоритмом, например, проверкой, является ли год делителем на 4, но не на 100, если он также делится на 400 (это потому, что високосные годы наступают каждые 4 года, за исключением лет, которые делятся на 100, но не на 400). В целом, этот код - хороший старт, и с некоторым рефакторингом он может стать еще более эффективным и поддерживаемым!

В статье описывается функция на языке Delphi, которая вычисляет количество дней в месяце, и пример использования этой функции для вывода количества дней июля 2001 года.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Дата и Время ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 14:40:54/0.0032179355621338/0