Как рассчитать возраст на основе дня рождения? [Дубликат]

Я просто столкнулся с той же проблемой, и это шаги, которые я выполняю, чтобы предоставить версию Python. Я хотел запустить мои задания PySpark с помощью Python 2.7 вместо 2.6.

  1. Перейдите в папку, где $SPARK_HOME указывает (в моем случае /home/cloudera/spark-2.1.0-bin-hadoop2.7/)
  2. В папке conf есть файл с именем spark-env.sh ]. Если у вас есть файл с именем spark-env.sh.template, вам нужно будет скопировать файл в новый файл с именем spark-env.sh.
  3. Отредактируйте файл и напишите следующие три строки экспорта PYSPARK_PYTHON = / usr / local / bin / python2.7 export PYSPARK_DRIVER_PYTHON = / usr / local / bin / python2.7 export SPARK_YARN_USER_ENV = "PYSPARK_PYTHON = / usr / local / bin / python2.7"
  4. Сохраните его и запустите приложение еще раз: )

Таким образом, если вы загрузите отдельную автономную версию Spark, вы можете установить версию Python, к которой вы хотите запустить PySpark.

22
задан Community 23 May 2017 в 10:30
поделиться

4 ответа

Stackoverflow использует такую ​​функцию для определения возраста пользователя.

Вычислить возраст в C #

Полученный ответ:

DateTime now = DateTime.Today;
int age = now.Year - bday.Year;
if (now < bday.AddYears(age)) age--;

Итак, ваш вспомогательный метод будет выглядеть как

public static string Age(this HtmlHelper helper, DateTime birthday)
{
    DateTime now = DateTime.Today;
    int age = now.Year - birthday.Year;
    if (now < birthday.AddYears(age)) age--;

    return age.ToString();
}

Сегодня я использую другую версию этой функции, чтобы включить дату обращения. Это позволяет мне узнать возраст кого-либо в будущем или в прошлом. Это используется для нашей системы бронирования, где требуется возраст в будущем.

public static int GetAge(DateTime reference, DateTime birthday)
{
    int age = reference.Year - birthday.Year;
    if (reference < birthday.AddYears(age)) age--;

    return age;
}
43
ответ дан 29 November 2019 в 04:17
поделиться

Еще один умный способ из той древней ветки :

int age = (
    Int32.Parse(DateTime.Today.ToString("yyyyMMdd")) - 
    Int32.Parse(birthday.ToString("yyyyMMdd"))) / 10000;
6
ответ дан 29 November 2019 в 04:17
поделиться

Я делаю это так:

(Код немного сокращен)

public struct Age
{
    public readonly int Years;
    public readonly int Months;
    public readonly int Days;

}

public Age( int y, int m, int d ) : this()
{
    Years = y;
    Months = m;
    Days = d;
}

public static Age CalculateAge ( DateTime birthDate, DateTime anotherDate )
{
    if( startDate.Date > endDate.Date )
        {
            throw new ArgumentException ("startDate cannot be higher then endDate", "startDate");
        }

        int years = endDate.Year - startDate.Year;
        int months = 0;
        int days = 0;

        // Check if the last year, was a full year.
        if( endDate < startDate.AddYears (years) && years != 0 )
        {
            years--;
        }

        // Calculate the number of months.
        startDate = startDate.AddYears (years);

        if( startDate.Year == endDate.Year )
        {
            months = endDate.Month - startDate.Month;
        }
        else
        {
            months = ( 12 - startDate.Month ) + endDate.Month;
        }

        // Check if last month was a complete month.
        if( endDate < startDate.AddMonths (months) && months != 0 )
        {
            months--;
        }

        // Calculate the number of days.
        startDate = startDate.AddMonths (months);

        days = ( endDate - startDate ).Days;

        return new Age (years, months, days);
}

// Implement Equals, GetHashCode, etc... as well
// Overload equality and other operators, etc...

}

2
ответ дан 29 November 2019 в 04:17
поделиться

Я действительно не понимаю, зачем вы сделали это помощником HTML. Я бы сделал его частью словаря ViewData в методе действия контроллера. Примерно так:

ViewData["Age"] = DateTime.Now.Year - birthday.Year;

Учитывая, что день рождения передается в метод действия и является объектом DateTime.

-2
ответ дан 29 November 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: