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

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

Пусть x - возраст человечка.
Вычитаем сегодняшний год из года, когда родился человечек:
x = сегодняшний год - год рождения человечка
Дальше сравниваем месяцы, если месяц рождения человечка меньше,чем сегодняшний месяц или равен ему, то x остается прежним:
x
Если месяц рождения человечка больше сегодняшнего месяца, то из x вычитаем 1:
x = x - 1
__________________________________________________________
Например:
Сегодняшний месяц: 9
Сегодняшний год: 2020
Год рождения человечка: 2002
Месяц рождения человечка: 8
x = 2020 - 2002
x = 18
Месяца рождения человечка меньше сегодняшнего, x остается прежним
x = 18
Ответ: 18 лет



Язык не указан, привел пример на 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);
- }
- }



Для определения возраста человека на основе известных данных о его дате рождения и текущей дате можно воспользоваться следующим алгоритмом:
- Вычислить разницу между текущим годом и годом рождения.
- Если номер текущего месяца больше или равен номеру месяца рождения, то человек уже отметил день рождения в этом году, и возраст равен разнице в годах. Иначе возраст меньше на 1 год.
- Если номер текущего месяца равен номеру месяца рождения, и число текущего дня больше или равно числу дня рождения, то возраст также равен разнице в годах. В противном случае возраст меньше на 1 год.
Пример на Python:
pythondef 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
на реальные данные, и этот код рассчитает возраст человека в соответствии с вашими условиями.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili