powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
3 сообщений из 3, страница 1 из 1
произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
    #32200305
alwil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано строковое поле DB для времени hh:mm:ss (не тайм-поле)
time_ext,
time_in

как мне произвести вычитание 1-го времени из другого с учетом секунд

если без секунд то я делаю так
____________________________

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
j= 0 
i= 0 
delta =  0 
delta = 1 
res= 0 

j=MyConvertToMin(alltrim(time_ext))
i=MyConvertToMin(alltrim(time_out))

delta=(j-i) 
delta  = res/ 60  
delta1 = res% 60 

res=FLOOR(delta) get min

messagebox( "Work Hour is : "  + alltrim(STR(res))+  
                   " hour "  + alltrim(STR(delta1)+  " min" ))

&&******************************

function MyConvertToMin(cMixedVal)
	cNumber =  ""
	nNumber = "  "
    nCounter=0 
	cCharacter=""
	h= 0 
	m= 0 
	delta= 0 
	
    h=int(val(substr(cMixedVal, 1 , 2 )))* 60 
    m=int(val(substr(cMixedVal, 4 , 2 )))
    delta=m+h
 return delta



но если все происходит в пределах одной минуты то рез-тат (0) :((((
...
Рейтинг: 0 / 0
произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
    #32200307
alwil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавление

не проблема перевести в секунды из формата часы-мин-сек

как вернуть обратно - вот вопрос
...
Рейтинг: 0 / 0
произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
    #32200371
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ряд полезных функций:
Для работы с датами sys(11)
Для работы со сременем в течении ОДНИХ суток - sys(2) (Количество секунд, прошедших после полуночи)

Если нужен интервал более суток, то используя Вашу фантазию и эти функции - можно вычислять кол-во секунд между любыми двумя событиями...

Вот пример хранения времени изменения данных (не совсем ваш вопрос, но все-же дает представление об использовании эти двух функций):

Код: plaintext
replace dku WITH Sys( 11 ,Date())+Transform(Sys( 2 ))


А это преобразование в привычный вид:

Код: plaintext
? sys sht(dku)


где:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* функция перевод моих внутренних дат в нормальный вид
Function sht
Parameters indat
Local lnt1,lnt2,lnt3,s1,s2,s3
s1=Sys( 10 ,Val(Substr(indat, 1 , 7 )))+' '
s2= Val(Substr(indat, 8 , 5 ))
lnt1=Int(s2/ 3600 ) && часы
lnt2=Int(s2/ 60 -lnt1* 60 ) && минуты
lnt3=Int(s2-lnt1* 3600 -lnt2* 60 ) && секунды
s3=s1+Transform(lnt1,'@L 99')+':'+Transform(lnt2,'@L 99')+':'+Transform(lnt3,'@L 99')
Return (s3)


Успехов!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]