2013-11-20 1 views
0

Привет, ребята, я работаю над проектом, где мне нужно найти возраст пациента, используя функцию в файле заголовка. Я пытаюсь использовать раздел и остаток для разделения текущей даты на месяц, день и год. Проблема в том, что я не могу найти способ использовать текущую дату как целое число. Вот часть моего кода, с которым у меня возникают проблемы.Использовать время как int для вычисления в функции?

int PatientDemographicInformation::getPatientAge() 
{ 
    int patientBirthMonth = patientDateOfBirth/1000000; 
    int patientBirthDay = (patientDateOfBirth % 1000000)/10000; 
    int patientBirthYear = patientDateOfBirth % 10000; 

    // What can I use on the line below to get the current date/time as an int? 
    int currentTime = /*What can I use here?*/ 
    int currentMonth = currentTime/1000000; 
    int currentDay = (currentTime % 1000000)/10000; 
    int currentYear = currentTime % 10000; 

    if (currentMonth >= patientBirthMonth) 
    { 
     if (patientBirthDay < currentDay) 
     { 
      int patientAge = (currentYear - patientBirthYear) - 1; 
     } 
     else 
     { 
     int patientAge = currentYear - patientBirthYear; 
     } 
    } 
    else 
    { 
     int patientAge = currentYear - patientBirthYear; 
    } 
    return patientBirthMonth; 
} 

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

Thanks

+0

Определите, что «не работает». Отказаться от компиляции? Если да, укажите сообщения об ошибках. Составляет ли он, но дает неправильные ответы? Если да, укажите, что он дает, а также то, что он должен * дать. – thirtythreeforty

+0

Он не будет компилироваться, он говорит, что не может использовать операторы '/' или '%' для каждой из этих трех строк. Правильно ли я использую это время? – ObsDev

+0

Он определен в конструкторе как int. – ObsDev

ответ

0

Я предполагаю, что ваше смешивание двух совершенно разных вещей.

patientDateOfBirth, вероятно, поступает из базы данных, где строка «12/21/1994» хранится как номер 12211994. Таким образом, код наверху распаковывает это.

Время - это нечто иное. Дайте ему, что он не позволит вам сделать на них оператор «/», значение во времени [9] может быть структурой, объектом или даже строкой. Вам нужно будет узнать больше о том, в какое время [] и каковы его значения.

+0

Я хочу использовать время [9] для текущего времени, я взял его из примера, надеясь, что это сработает, но, как вы сказали, я думаю, что это из таблицы, сделанной в их коде, которая не в моем. Итак, как мне пойти на замену «time [9]» текущим временем? Есть ли способ получить и сохранить время, например, 11192013? – ObsDev

Смежные вопросы