Возраст на сегодня по дате рождения

Простая задача — определить возраст человека на текущую дату по его дате рождения — часто встречается в разработке. Это может понадобиться в формах регистрации, анкетах, расчете возраста для скидок и т. д.

Покажем, как с помощью C# можно корректно рассчитать возраст на сегодняшний день, учитывая, прошёл ли день рождения в этом году.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;

namespace Work
{
    class Program
    {
        static void Main(string[] args)
        {
            var date=  CalculateAge(new DateTime(1980, 12, 22));
            Console.WriteLine($"Ваш возраст: {date}");
            Console.ReadKey();
        }

        public static int CalculateAge(DateTime BirthDate)
        {
            int YearsPassed = DateTime.Now.Year - BirthDate.Year;
            if (DateTime.Now.Month < BirthDate.Month || (DateTime.Now.Month == BirthDate.Month && DateTime.Now.Day < BirthDate.Day))
            {
                YearsPassed--;
            }
            return YearsPassed;
        }
    }
}

Как это работает?

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

Такой подход корректен даже в високосные годы и охватывает все типичные сценарии.

Console.WriteLine(CalculateAge(new DateTime(2000, 5, 20))); // Пример: 25 лет, если сегодня 20.05.2025
Console.WriteLine(CalculateAge(new DateTime(2010, 10, 10))); // 14 лет, если сегодня до 10 октября 2025

Вывод

Функция CalculateAge — лаконичное и надёжное решение для определения возраста на текущую дату в C#. Такой код удобно использовать в бизнес-логике, API, базах данных и даже мобильных приложениях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.