Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6 / 3 сообщений из 3, страница 1 из 1
06.07.2003, 14:14
    #32200305
alwil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
Дано строковое поле 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
06.07.2003, 14:18
    #32200307
alwil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
добавление

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

как вернуть обратно - вот вопрос
...
Рейтинг: 0 / 0
07.07.2003, 00:47
    #32200371
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6
Ряд полезных функций:
Для работы с датами 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / произвести вычитание 1-го времени из другого с учетом секунд( char field ) VFP6 / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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