Арифметические операции с датой и временем

Простейшие вопросы в области инженерной разработки
Ответить
K0sinus
user
user
Сообщения: 70
Зарегистрирован: 22 ноя 2017, 10:29
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Поблагодарили: 2 раза
Контактная информация:

Арифметические операции с датой и временем

Сообщение K0sinus »

Доброго дня. Столкнулся с непониманием как устроен тип Time Stamp.
1. Чем отличаются Absloute и Relative time?
2. Чем отличается Time Stamp от Double, представленном как время (Display format - Absolute time).
3. Можно ли складывать и вычитать тайм стэмпы привычным образом? Или надо обязательно выдёргивать часы, минуты, секунды и писать логику временной арифметики?

Я, например, хочу из 12:00 вычесть 13:00 и получить 23:00.
Вложения
1.jpg
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Арифметические операции с датой и временем

Сообщение Artem.spb »

K0sinus писал(а): 27 июл 2021, 10:40 Доброго дня. Столкнулся с непониманием как устроен тип Time Stamp.
По-моему погуглить быстрее.
https://www.ni.com/ru-ru/support/docume ... rview.html
1. Чем отличаются Absloute и Relative time?
Как очевидно из названия абсолютностью и относительностью.
Абсолютное - это то самое "время", например, ваш пост "Сегодня, 10:40"
Относительное - это количество секунд, которое прошло с чего-нибудь, например, ваш пост юыл 4 часа назад
2. Чем отличается Time Stamp от Double, представленном как время (Display format - Absolute time).
Примерно всем, см первый ответ.
Time Stamp - это способ хранения абсолютного времени, в данном случае выбран способ хранения "время с...", но пользователю предоставляется удобный "сервис", так что он ничего и не замечает и видит "как бы" дату и время, причём в некоторых вариантах может прям словами месяц видеть.
Double - это просто double, число двойной точности. Если его интерпретировтаь как абсолютное время, то оно будет работать как "секунды с..."
3. Можно ли складывать и вычитать тайм стэмпы привычным образом? Или надо обязательно выдёргивать часы, минуты, секунды и писать логику временной арифметики?
А попробовать религия не позволяет?
time.png
time.png (10.91 КБ) 1201 просмотр
Я, например, хочу из 12:00 вычесть 13:00 и получить 23:00.
Это как? 12-13=-1, а никак не 23.
Если числа - это полноценные Time Stamp (=в них есть ДАТА), то вычитание пройдёт корректно, но будет уже не дата, а "количество" времени между этими точками, т.е количество секунд.
Складывать уже не получится, при сложении временем может быть только одно из слагаемых, второе будет уже секунды.
K0sinus
user
user
Сообщения: 70
Зарегистрирован: 22 ноя 2017, 10:29
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Поблагодарили: 2 раза
Контактная информация:

Re: Арифметические операции с датой и временем

Сообщение K0sinus »

Так, ну вот есть две временные точки. 14:00 1 сентября и 13:15 2 сентября.
Как посчитать, сколько между ними прошло времени?
Вычитаем, получает дабл, его можно отобразить как время, ок. Но как получить TimeStamp с таким же временем?
Вложения
Untitled 1.vi
(5.18 КБ) 55 скачиваний
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Арифметические операции с датой и временем

Сообщение Artem.spb »

Вы пытались осознать то, что я написал?
Как посчитать, сколько между ними прошло времени?
Именно так и посчитать - ВЫЧИТАНИЕМ. Получится количество секунд между этими точками
Но как получить TimeStamp с таким же временем?
И как вы себе это представляете? Каким "таким же"?
"Сегодня" минус "вчера" получатся секунда, а никак не "позавчера" или любая другая дата.
Если вам нужно "расстояние" между двумя точками, то вычтаете их, получаете секунды.
Если вам нужно "сдвинуть" дату, то нужно к этой дате плюс/минус СЕКУНДЫ, а не другую дату, тогда на выходе остаётся дата.
K0sinus
user
user
Сообщения: 70
Зарегистрирован: 22 ноя 2017, 10:29
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Поблагодарили: 2 раза
Контактная информация:

Re: Арифметические операции с датой и временем

Сообщение K0sinus »

Да, спасибо. Я понял.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Арифметические операции с датой и временем

Сообщение Borjomy_1 »

формат хранения в Double даты-времени это количество секунд с 0 часов и нуля минут 1 января 1904 года по Гринвичу. В московском часовом поясе это 3 часа 1.01.1904

К примеру, формат хранения даты-времени у Microsoft в Double это количество суток, начиная с 1 января 1900 года.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»