Excel хранит дату / время как двойные - целочисленная часть - это количество дней с 1899 по 12-31, поэтому 1
становится 1900-01-01
, а 60
становится 1900-02-29
и так далее. Десятичная часть - это время, как доля целого дня - 0.5
равна 12 полдень .
Таким образом, значение 0.1
равно 2 hours, 24 minutes
, а не 100 milliseconds
Это означает, что ваш код дает точно правильный вывод для того, что вы написали, но не для того, что вы хотели написать.
То, что вы на самом деле , похоже, хотите, - это функция TIME
, которая принимает часы, минуты и секунды и выводит значение времени следующим образом:
=TIME(01, 23, 45)
1:23 AM
=TEXT(TIME(01, 23, 45), "hh:mm:ss")
01:23:45
Функции DATE
и TIME
также «переполнены». То есть =TIME(0, 0, 65)
- это то же самое, что и запись =TIME(0, 1, 5)
, оба дают 1 minute, 5 seconds
.
Они также " при потоке", поэтому TIME(0, 2, -55)
также даст 1 minute, 5 seconds
(и =DATE(1900,3,0)
равно 1900-02-29
, в то время как =DATE(1901,3,0)
равно 1901-02-28
)