sugerencias para sacar la diferencia entre 2 horas

22/07/2005 - 10:56 por Sonia | Informe spam
hola

kiero sacar los minutos y segundos q hay entre 2 horas hora final-hora
inicio

de momento solo estoy sacando los segundos pero no me sale

hago esto:

' *************** primera forma de hacerlo *****************

Dim hora2, hora1 As Date

Dim diferencia As Integer



'hora inicio-la almacene en un textbox pq no podria ponerlo como variable

'hora inicio

hora.Text = Microsoft.VisualBasic.Hour(System.DateTime.Now)

hora.Text = Format(System.DateTime.Now, "HH:mm")

'hora final

horaf.Text = Microsoft.VisualBasic.Hour(System.DateTime.Now)

horaf.Text = Format(System.DateTime.Now, "HH:mm")



hora2 = horaf.Text

hora1 = hora.Text

diferencia = hora2.Subtract(hora1)



y despues en el insert inserto la diferencia



' *************** segunda forma de hacerlo *****************

Dim difer As TimeSpan

Dim hora2, hora1 As String

difer = (DateDiff(DateInterval.Day, DateTime.Parse(hora2),
DateTime.Parse(hora1)))



bueno ninguno de los ejemplos me da.

Alguna sugerencia??



gracias

Preguntas similare

Leer las respuestas

#6 Carlos Gómez
25/07/2005 - 18:02 | Informe spam
Sonia wrote:

  
ok.
ya he averiguado q me sale solo un num pq me sale en minutos ya q npongo
'n' en la funcion datediff

DateDiff("n",Min([INICIO]),Max([FIN]))

pero no habria ninguna manera en q me saliera en horas:minutos??

gracias!




Si DateDiff devuelve un valor tipo Date (no lo sé) puedes hacer los
siguiente:

msgbox(String.Format("{0:t}",DateDiff("n",Min([INICIO]),Max([FIN])))

El formato t es uno de los formatos estándar para los valores de fecha y
hora, y devuelve una hora cora (HH:mm)
Respuesta Responder a este mensaje
#7 Sonia
26/07/2005 - 09:24 | Informe spam
ok
lo q pasa es q en la consulta de acces no me deja poner lo de .format
en vb.net no hay problema pero tengo q ponerlo tb en acces,
y por cierto, para hh:mm:ss existe algo tb?
gracias!



"Carlos Gómez" escribió en el mensaje
news:
Sonia wrote:

>
> ok.
> ya he averiguado q me sale solo un num pq me sale en minutos ya q npongo
> 'n' en la funcion datediff
>
> DateDiff("n",Min([INICIO]),Max([FIN]))
>
> pero no habria ninguna manera en q me saliera en horas:minutos??
>
> gracias!
>

Si DateDiff devuelve un valor tipo Date (no lo sé) puedes hacer los
siguiente:

msgbox(String.Format("{0:t}",DateDiff("n",Min([INICIO]),Max([FIN])))

El formato t es uno de los formatos estándar para los valores de fecha y
hora, y devuelve una hora cora (HH:mm)


Respuesta Responder a este mensaje
#8 Carlos Gómez
26/07/2005 - 17:20 | Informe spam
Sonia wrote:


ok
lo q pasa es q en la consulta de acces no me deja poner lo de .format
en vb.net no hay problema pero tengo q ponerlo tb en acces,



Pero en access no existe time, sólo DateTime.
Realmente importa poco como se guarde en access siempre y cuando puedas
recuperar realmente lo que guardaste en el formato original: Puedes
guardardarlo como texto por ejemplo "12:45", y después para recuperarlo
hacer la conversión oportuna.

y por cierto, para hh:mm:ss existe algo tb?
gracias!




msgbox(String.Format("{0:T}",DateDiff("n",Min([INICIO]),Max([FIN])))
T mayúscula

d -- fecha formato corto
D -- fecha formato largo
f -- fecha y hora completas (hora corto)
F -- fecha y hora completas (hora largo)
g -- General (fecha y hora formato corto)
G -- general (fecha coray y hora formato largo)
M,m -- Formato mes y dia
Y,y -- Formato año y mes
u -- Patron de fecha y hora ordenable universal ISO 8601
R,r -- Patrón RFC1123
Respuesta Responder a este mensaje
#9 Sonia
27/07/2005 - 10:45 | Informe spam
ok
el unico problema es q el diferencia de horas no la guardo en la bd, sino q
lo calcula la consutla de acces, por eso q no puedo poner lo de .format para
calcular la diferencia en horas,min y seg.

solo tengo esta consutla en segundos y kiero q se grabe en la bd en hh:mm:ss

SELECT colegios.OPERADORA, colegios.FECHA, Min(colegios.INICIO) AS DESDE,
Max(colegios.FIN) AS HASTA, DateDiff("n",Min([INICIO]),Max([FIN])) AS
TIEMPO, colegios.ID_COL, colegios.TELEFONO
FROM colegios
GROUP BY colegios.OPERADORA, colegios.FECHA, colegios.ID_COL,
colegios.TELEFONO;






"Carlos Gómez" escribió en el mensaje
news:u1Y$
Sonia wrote:

>
> ok
> lo q pasa es q en la consulta de acces no me deja poner lo de .format
> en vb.net no hay problema pero tengo q ponerlo tb en acces,

Pero en access no existe time, sólo DateTime.
Realmente importa poco como se guarde en access siempre y cuando puedas
recuperar realmente lo que guardaste en el formato original: Puedes
guardardarlo como texto por ejemplo "12:45", y después para recuperarlo
hacer la conversión oportuna.

> y por cierto, para hh:mm:ss existe algo tb?
> gracias!
>

msgbox(String.Format("{0:T}",DateDiff("n",Min([INICIO]),Max([FIN])))
T mayúscula

d -- fecha formato corto
D -- fecha formato largo
f -- fecha y hora completas (hora corto)
F -- fecha y hora completas (hora largo)
g -- General (fecha y hora formato corto)
G -- general (fecha coray y hora formato largo)
M,m -- Formato mes y dia
Y,y -- Formato año y mes
u -- Patron de fecha y hora ordenable universal ISO 8601
R,r -- Patrón RFC1123

Respuesta Responder a este mensaje
#10 Carlos Gómez
28/07/2005 - 07:49 | Informe spam
Sonia wrote:


ok
el unico problema es q el diferencia de horas no la guardo en la bd, sino
q lo calcula la consutla de acces, por eso q no puedo poner lo de .format
para calcular la diferencia en horas,min y seg.

solo tengo esta consutla en segundos



sera en minutos, ya que en datediff tienes "n" y eso son minutos. Si quieres
segundos es "s": DateDiff("s",inicio,fin)


y kiero q se grabe en la bd en
hh:mm:ss



pero si grabas segundos tienes lo mismo

Realmente no llego a entender que es lo que tienes en mente


SELECT colegios.OPERADORA, colegios.FECHA, Min(colegios.INICIO) AS DESDE,
Max(colegios.FIN) AS HASTA, DateDiff("n",Min([INICIO]),Max([FIN])) AS
TIEMPO, colegios.ID_COL, colegios.TELEFONO
FROM colegios
GROUP BY colegios.OPERADORA, colegios.FECHA, colegios.ID_COL,
colegios.TELEFONO;



¿Hay algun motivo por el que le hagas al motor de la base de datos calcular
la diferencia de fechas?

Si lo que quieres guardar la diferencia de fechas tendras un campo que sera
de tipo datetime o cadena. En cualquier caso, introduces ahi el valor.
Luego, cuando lo recuperas, lo formateas al gusto
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida