Вопрос задан 04.07.2023 в 21:50. Предмет Информатика. Спрашивает Поперечный Раим.

Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня

(январь — 1 и т. д.). Определить возраст человека (число полных лет). В случае совпадения указанных номеров месяцев считать, что прошел полный год.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Довганюк Давид.

Пусть x - возраст человечка.

Вычитаем сегодняшний год из года, когда родился человечек:

x = сегодняшний год - год рождения человечка

Дальше сравниваем месяцы, если месяц рождения человечка меньше,чем сегодняшний месяц или равен ему, то x остается прежним:

x

Если месяц рождения человечка больше сегодняшнего месяца, то из x вычитаем 1:

x = x - 1

__________________________________________________________

Например:

Сегодняшний месяц: 9

Сегодняшний год: 2020

Год рождения человечка: 2002

Месяц рождения человечка: 8

x = 2020 - 2002

x = 18

Месяца рождения человечка меньше сегодняшнего, x остается прежним

x = 18

Ответ: 18 лет

0 0
Отвечает Воробьёв Егор.

Язык не указан, привел пример на C# .NET Core 3.1

Принимаем на вход номер года и номер месяца рождения.

Код:

  • using System;
  • namespace HowOldAreYou
  • {
  •    class Program
  •    {
  •        static void Main(string[] args)
  •        {
  •            int month, year;
  •            Console.WriteLine("Enter your birthday year number and month number");
  •            Console.Write("Year: "); if (!int.TryParse(Console.ReadLine()!, out year)) return;
  •            Console.Write("Month: "); if (!int.TryParse(Console.ReadLine()!, out month) || month > 12 || month < 1) return;
  •            
  •            var today = DateTime.Now;
  •            var birthday = new DateTime(year, month, today.Day);
  •            var age = (ZeroDate + (today - birthday)).Year - 1;
  •            age = age == 0 ? 1 : age;
  •            Console.WriteLine($"Your age is {age}.");
  •        }
  •        private static DateTime ZeroDate => new DateTime(1, 1, 1);
  •    }
  • }
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для определения возраста человека на основе известных данных о его дате рождения и текущей дате можно воспользоваться следующим алгоритмом:

  1. Вычислить разницу между текущим годом и годом рождения.
  2. Если номер текущего месяца больше или равен номеру месяца рождения, то человек уже отметил день рождения в этом году, и возраст равен разнице в годах. Иначе возраст меньше на 1 год.
  3. Если номер текущего месяца равен номеру месяца рождения, и число текущего дня больше или равно числу дня рождения, то возраст также равен разнице в годах. В противном случае возраст меньше на 1 год.

Пример на Python:

python
def calculate_age(birth_year, birth_month, current_year, current_month): age = current_year - birth_year if current_month < birth_month: age -= 1 elif current_month == birth_month: # Тут можно добавить проверку по дням, если необходимо age -= 1 return age # Замените эти значения на фактические данные birth_year = 2000 birth_month = 5 current_year = 2023 current_month = 8 age = calculate_age(birth_year, birth_month, current_year, current_month) print(f"Возраст: {age} лет")

Замените значения birth_year, birth_month, current_year и current_month на реальные данные, и этот код рассчитает возраст человека в соответствии с вашими условиями.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос