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

Norefer Norefer    2   10.09.2020 02:47    22

Ответы
45891233i 45891233i  15.10.2020 19:38

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

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

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

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

x

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

x = x - 1

Например:

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

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

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

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

x = 2020 - 2002

x = 18

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

x = 18

ответ: 18 лет

ПОКАЗАТЬ ОТВЕТЫ
ksu1371 ksu1371  15.10.2020 19:38

Язык не указан, привел пример на 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);    }}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика