Вы спрашиваете, как работает эта строка:
if (myDate.Date > today.AddYears(-age)) age--;
Количество лет было рассчитано путем вычитания года из DOB из года сейчас . Например, если ваш DOB был 15/05/1979, а сейчас это 2020, это даст:
age = 2020 - 1979 = 41
Однако, если DOB этого человека был после сегодняшнего дня, он не был бы 41 все же они все равно будут равны 40.
В случае заявления if
, если дата их рождения (месяц и день) после сегодняшнего дня, вычитается один год от age
, чтобы указать правильный возраст (в моем примере это было бы 40 лет).
Лог c не так лаконичен, как мог бы быть, но по сути он говорит:
- Возьмите расчетный возраст в годах от сегодняшней даты (пример: 15/05/1979 = 41 год, 12/01/2020 - 41 год = 12/01/1979)
- Является ли DOB после это значение? (15/05/1979 ПОСЛЕ 12/01/1979)
- Если да, вычтите 1 из возраста (пример: 41 - 1 = 40 лет)