Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: [решено] Время
Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Вот мой вариант решения. Часы в соответствии с региональным русским стандартом системы изменяются от 0 до 23; минуты, секунды в системе должны отображаться двумя знаками, формат времени - 24 часа. Отличия:
1. Разность выдаю в сотых секунды.
2. Учитываю возможный переход через одну полночь (когда t2<t1)
3. Правильно считаю значение каждого времени в сотых секунды - для поставленной задачи (подсчет разности) это не существенно.
Код: Выделить весь код
@echo off
cls

Call :DSek t1

@Echo Здесь процесс 
pause 

Call :DSek t2

If %t2% GEQ %t1% (Set /a tt=t2-t1) Else (Set /a tt=t2-t1+8640000) 

Echo Окончание %t2%
Echo Начало    %t1%
Echo Разность  %tt% сотые секунды
Pause

GoTo :Eof

:Dsek
FOR /F "tokens=1,2,3,4 delims=:.," %%i in ("%Time%") do Set /A %1=(%%i*3600+1%%j*60+1%%k-6100)*100+1%%l-100
gora, спасибо, не знал, что можно возвращать значение аргумента.
Однако в Ваш батник коварно вкралась ошибка: если время от 0 до 9 часов, то Ваша строка
Цитата:
Set /a %1=3600*%tm:~0,2%+60*1%tm:~3,2%+1%tm:~6,2%
выполнится с ошибкой, так как Вы выделяете под часы 2 знака, даже если стандарт времени настроен так, чтобы часы занимали 2 позиции, то, например, если текущее время 09 часов эта же строка тоже выполнится с ошибкой

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 09-12-2012 в 21:51.


Отправлено: 21:43, 09-12-2012 | #6

Название темы: [решено] Время