С++ вычисляет разницу между датами

Возможный дубликат:
Проверка двух переменных TDateTime

У меня возникли проблемы с вычислением разницы между двумя датами и последующим отображением разницы. Я разместил предыдущий вопрос.

Мне нужна помощь с функцией replaceTime. Я не уверен, как/почему мне нужно использовать это.

Вот мой код:

TDateTime testFirstDate("11/09/2012");
TDateTime testFirstTime("14:00");

TDateTime testSecondDate("12/09/2012");
TDateTime testSecondTime("16:00");

TDateTime testCombined1 = ReplaceTime(testFirstDate,testFirstTime);
TDateTime testCombined2 = ReplaceTime(testSecondDate,testSecondTime);

TDateTime testDateDifference = testCombined2 - testCombined1;

std::cout << testDateDifference;

person Darryl Janecek    schedule 12.09.2012    source источник
comment
Вам не нужно повторно публиковать один и тот же вопрос более одного раза: Проверка двух переменных TDateTime   -  person Adriano Repetti    schedule 12.09.2012
comment
А ваша проблема/вопрос?   -  person StoryTeller - Unslander Monica    schedule 12.09.2012
comment
Мне кажется, что ReplaceTime используется для объединения даты и времени. Вам нужно объединить testFirstDate и testFirstTime, а также testSecondDate и testSecondTime, прежде чем вы найдете разницу, не так ли?   -  person john    schedule 12.09.2012
comment
Да. В принципе, я хочу знать, являются ли второй раз и дата позже, чем первый раз и дата.   -  person Darryl Janecek    schedule 13.09.2012


Ответы (1)


Ваш код не имеет смысла. Разница двух дат никогда не бывает новой датой!

Я подозреваю, что эта часть неверна:

TDateTime testDateDifference = testCombined2 - testCombined1;

Разница двух дат — это период времени — промежуток времени (обычно в секундах). Вы сами написали реализацию для TDateTime?

person Man Vs Code    schedule 12.09.2012
comment
Это реализация TDateTime библиотек C++ Builder. Его код правильный, разница между двумя датами - это другая дата. - person Adriano Repetti; 12.09.2012
comment
Use the System::TDateTime::- to subtract the value specified by the rhs operand from the System::TDateTime::TDateTime object. The rhs operand represents the number of days (including fractional days) to subtract. Согласно спецификации Borland, несмотря на то, что типом является TDateTime, правый операнд технически не является датой. Вот как они могут избежать наказания за то, что оператор-() возвращает новую дату. По крайней мере, .NET получил это право со своим классом DateTime. - person Man Vs Code; 14.09.2012