#date #vbscript
#Дата #vbscript
Вопрос:
Как рассчитать продолжительность времени между двумя датами с помощью VBScript
Date1 = 2021-01-22 11:43:38.000 Date2 = 2021-01-22 14:32:38.000
результат должен быть HH: MM: SS
Комментарии:
1. используемые DateDiff, а также TimeSerial получили вывод, но добавили AM также к выводу. Как можно удалить AM??
2. я работаю с vbscript, но работаю идеально.. здесь проблема заключалась в продолжительности… я получил продолжительность в секундах, если продолжительность менее 1 часа показывает вывод 12:32:00 (фактическая продолжительность 32 мин)
3. The VB.NET в описании тега явно указано, что он не должен использоваться для вопросов VBScript. Не спамите теги, потому что это тратит время людей.
Ответ №1:
TimeSerial и FormatDateTime возвращают дату или время, которые будут учитывать региональные настройки компьютера. На моем европейском компьютере расширение AM не отображается, потому что мы используем формат времени 24 часа.
Дополнительная проблема с TimeSerial заключается в том, что он переполнится, если пройдет более 32767 секунд.
Другим подходом может быть вычисление значений для часов, минут и секунд по отдельности. Возможным решением может быть:
secValue = DateDiff("s",Date1,Date2)
hours = secValue 3600
hh = hours
if hours < 10 then
hh = Right("0" amp; hours, 2)
end if
mm = Right("0" amp; (secValue - hours * 3600) 60, 2)
ss = Right("0" amp; secValue mod 60, 2)
diff = hh amp; ":" amp; mm amp; ":" amp; ss
wscript.echo diff
Ответ №2:
Наконец-то я ответил на свой вопрос, чувствуя себя прекрасно
Date1 = alA_Filling(0)
Date2 = alA_Filling(1)
secValue = DateDiff("s",Date1,Date2)
ts = TimeSerial(0, 0, secValue)
Duration = FormatDateTime(ts, vbLongTime)
Но я получил результат, подобный 2:49:00 утра, почему добавленный AM к этому может быть этим vbLongTime
как я могу удалить это