Jochen Arndt
Сначала вам нужно разобрать входные строки, чтобы получить числовое значение даты, которое можно вычесть. Какая функция синтаксического анализа будет использоваться, зависит от операционной системы и опционально используемого фреймворка.
С Linux вы можете использовать strptime(3) - man-страница Linux[^] и преобразовать полученную struct tm
к time_t
с помощью mktime(3) - man-страница Linux[^]. Те time_t
затем значения могут быть вычитаны и преобразованы обратно в другие типы дат и, наконец, отформатированы в виде строки.
С приложениями Windows и MFC вы можете использовать Класс COleDateTime[^] который обеспечивает ParseDateTime
функция, оператор вычитания (существует также версия, возвращающая Класс COleDateTimeSpan[^]), а также функции форматирования.
Обратите внимание также, что вычитание двух дат приводит к временному промежутку, который обычно форматируется не как "ДД/ММ/гг", а как количество дней, месяцев или лет (или комбинация типа "n лет и m дней").
Так что нет смысла предоставлять код, пока вы не рассказали нам об используемой ОС и фреймворке, а также о том, как отображать результат.
Jochen Arndt
С МФЦ?
Чем использовать класс COleDateTime, как было предложено, получите разницу в виде COleDateTimeSpan и получите дни, вызвав функцию GetTotalDays (). Из этого вы можете вычислить годы, месяцы и оставшиеся дни.