На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Расчет возраста человека в годах на C#


Иногда вам захочется вычислить возраст человека или объекта и вернуть результат с указанием возраста в годах. Этот расчет прост в выполнении, если использовать свойства структуры DateTime NET framework и основные арифметические операторы.

Расчет возраста

Это может быть полезно для расчета возраста человека или объекта в годах. Это может быть по простым причинам, таким как отображение возраста в программном приложении или веб-сайте. Возможно, что продукты, которые продает компания, ограничены по возрасту и что по закону необходимо знать возраст клиента. Вычисление возраста очень просто с использованием свойств структуры DateTime и основных арифметических операторов.

Чтобы рассчитать возраст, мы должны сначала определить разницу в годах между датой рождения человека и текущей датой. Затем мы можем сравнить части месяца и дня двух дат, чтобы определить, следует ли скорректировать количество лет на единицу.

29 февраля

Есть люди, родившиеся 29 февраля в високосный год. Это необходимо учитывать при расчете возраста в течение невисокосного года. Считается, что человеку, родившемуся 29 февраля, 28 февраля исполняется восемнадцать лет. Многие алгоритмы определения возраста человека не учитывают этот особый случай и неверно рассчитывают их возраст как семнадцать лет до 1 марта. Метод, описанный в этой статье, обеспечивает такую возможность.

Создание метода

Мы создадим единый метод, который принимает параметр, содержащий дату рождения человека, и возвращает целое число, содержащее возраст в годах. Метод выполняет три ключевых действия:
  • Текущая дата присваивается переменной. Поскольку будет более одной операции, связанной с текущей датой, мы сохраним дату, чтобы избежать очень редких случаев, когда она может измениться во время выполнения метода.
  • Будет получена разница между частями года текущей даты и датой рождения. Это будет либо правильный возраст, либо на один год больше, чем правильный возраст.
  • Количество лет, рассчитанное на предыдущем шаге, будет добавлено к дате рождения. Если результирующая дата после текущей даты, мы знаем, что количество лет слишком велико. В этом случае мы вычтем единицу, чтобы определить возраст.
Метод заключается в следующем:

private static int CalculateAge(DateTime birthDate)
{
    DateTime today = DateTime.Today;
 
    int age = today.Year - birthDate.Year;
    if (birthDate.AddYears(age) > today)
    {
        age--;
    }
    return age;
}
Выполнение метода

Мы можем протестировать этот метод с помощью нескольких строк кода следующим образом. Попробуйте изменить дату рождения, чтобы проверить крайние случаи.

DateTime birthDate = new DateTime(1992, 8, 3);
int age = CalculateAge(birthDate);
Console.WriteLine("{0}", age);  // Выведет "29"




Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, си шарп, математика, алгоритмы

Читайте также:




Программа "Background copy": Фоновое копирование файлов
Русификация и регистрация на форуме MyBB


© upread.ru 2013-2021
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.