rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

Как рассчитать чей-то возраст в C #?

Больше
7 мес. 1 нед. назад #200 от О.Коровяков
О.Коровяков создал тему: Как рассчитать чей-то возраст в C #?
Легкое для понимания и простое решение.
// Save today date.
var today = DateTime.Today;
// Calculate the age.
var age = today.Year - birthdate.Year;
// Go back to the year the person was born in case of a leap year
if (birthdate > today.AddYears(-age)) age--;
Однако это предполагает, что вы ищете западную идею о возрасте и не используете восточноазиатские расчеты.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 мес. 1 нед. назад #201 от О.Коровяков
О.Коровяков ответил в теме Как рассчитать чей-то возраст в C #?
Это странный способ сделать это, но если вы отформатируете дату до yyyymmdd и вычтите дату рождения с текущей даты, то оставьте последние 4 цифры, у которых есть возраст:)

Я считаю, что это будет работать на любом языке.
20080814 - 19800703 = 280111
Отбросьте последние 4 цифры = 28.

Код С#:
int now = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
int dob = int.Parse(dateOfBirth.ToString("yyyyMMdd"));
int age = (now - dob) / 10000;

Или, альтернативно, без преобразования типа в форме метода расширения. Ошибка проверки:
public static Int32 GetAge(this DateTime dateOfBirth)
{
    var today = DateTime.Today;
 
    var a = (today.Year * 100 + today.Month) * 100 + today.Day;
    var b = (dateOfBirth.Year * 100 + dateOfBirth.Month) * 100 + dateOfBirth.Day;
 
    return (a - b) / 10000;
}

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
7 мес. 1 нед. назад #202 от О.Коровяков
О.Коровяков ответил в теме Как рассчитать чей-то возраст в C #?
Правильный фрагмент С# был написан Майклом Стамом

Вот фрагмент теста:
DateTime bDay = new DateTime(2000, 2, 29);
DateTime now = new DateTime(2009, 2, 28);
MessageBox.Show(string.Format("Test {0} {1} {2}",
                CalculateAgeWrong1(bDay, now),     // outputs 9
                CalculateAgeWrong2(bDay, now),     // outputs 9
                CalculateAgeCorrect(bDay, now)));  // outputs 8

Здесь у вас есть методы:
public int CalculateAgeWrong1(DateTime birthDate, DateTime now)
{
    return new DateTime(now.Subtract(birthDate).Ticks).Year - 1;
}
 
public int CalculateAgeWrong2(DateTime birthDate, DateTime now)
{
    int age = now.Year - birthDate.Year;
 
    if (now < birthDate.AddYears(age))
        age--;
 
    return age;
}
 
public int CalculateAgeCorrect(DateTime birthDate, DateTime now)
{
    int age = now.Year - birthDate.Year;
 
    if (now.Month < birthDate.Month || (now.Month == birthDate.Month && now.Day < birthDate.Day))
        age--;
 
    return age;
}

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

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