Как рассчитать продолжительность времени между двумя датами с помощью VBScript

#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

как я могу удалить это