Я хочу сделать тип данных времени в C ++. Для расчета даты мы можем использовать юлианский номер. Есть ли конкретное число для расчета времени
Большинство программ используют «не високосные секунды, начиная с epoc», когда им нужно число для представления абсолютной даты / времени. Эпок может быть чем угодно, но полночный UTC 1 января 1970 года является обычным явлением, поскольку его используют многие операционные системы. Если вы используете 32-битный тип со знаком, то это хорошо для +/- 68 лет. 64-битный тип легко охватывает возраст вселенной.
Для некоторых целей (таких как GPS и астрономия) «не високосные секунды» не достаточно хороши, вам нужно фактическое время, прошедшее.
Вы также получаете вариации на эту тему, например, стандартные библиотеки Java подталкивают вас к не прыжковым миллисекундам со времен epoc, так как это то, что System.currentTimeMillis()
возвращается. Это подходит только для 32-битного типа в течение примерно месяца, поэтому старые среды, отличные от Java, не всегда его поддерживают.
Не уверен, что понимаю, но, возможно, вы можете взглянуть на struct tm
: