В большинстве вычислительных сред даты и время представляют собой единую концепцию. Библиотека времени выполнения C (следовательно, также C ++) предоставляет тип time_t
, который измеряет время (и даты) как количество секунд с 1970-01-01T00: 00: 00 UTC.
Функция localtime()
принимает значение time_t
и преобразует его в поля, подобные календарю, к которым привыкли люди, в соответствии с местным часовым поясом (который получен из компьютера - часовой пояс также можно указать конкретно). Есть еще один очень похожий вызов, gmtime()
, который не учитывает местный часовой пояс, но всегда использует часовой пояс UTC, ранее называвшийся GMT.
Чтобы сделать то, что вы хотите, примите от пользователя дату его рождения, время рождения и часовой пояс и преобразуйте это в time_t
. Затем вычтите это из текущего time()
значения. Разница в количестве секунд, в течение которых они были живы. Чтобы быть дружелюбным, используйте gmtime()
, чтобы преобразовать его в годы, месяцы, дни, часы, минуты и секунды.