2015-12-31 2 views
-1

Я пытаюсь преобразовать функцию Excel SECOND() (описана here) в Java.Явный эквивалент функции SECOND() в Excel

Пожалуйста, помогите, если вы знаете функцию Java, которая делает то же самое.

+0

Это может помочь, если вы должны [изменить] свой вопрос и описать контекст, в котором вы будете использовать эту функцию. Например, будете ли вы работать с истинными значениями даты и времени Java? Пожалуйста, см. [Ask] дополнительные советы о том, как задать вопрос высокого качества. –

+0

Благодарим за редактирование вопроса более читаемым. Я действительно лучше понимаю это. :-) – user2760868

ответ

1

В Excel даты и время хранятся как double, а дробная часть - это время суток (см. Dates And Times In Excel).

Таким образом, чтобы получить секунд, вы умножить на количество секунд в день, и получить остаток от деления на 60:

double time = 42369.546594213; // 2015-12-31 13:07:05.740 
int seconds = (int)(time * 86400 % 60); // 5 

Или, если вы хотите, чтобы все компоненты времени:

int hours = (int)(time * 24 % 24);   // 13 
int minutes = (int)(time * 1440 % 60);  // 7 
int seconds = (int)(time * 86400 % 60);  // 5 
int millis = (int)(time * 86400000 % 1000); // 740