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

+383 голосов
1.9m просмотров

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


Информатика | 1.9m просмотров
Дано ответов: 2
+72 голосов

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

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

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

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

x

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

x = x - 1

__________________________________________________________

Например:

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

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

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

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

x = 2020 - 2002

x = 18

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

x = 18

Ответ: 18 лет

(294 баллов)
+130 голосов

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