• Domingo 22 de Diciembre de 2024, 12:40

Autor Tema:  Sumar Dos Variables De Tipo Date  (Leído 4199 veces)

solcito

  • Miembro MUY activo
  • ***
  • Mensajes: 143
    • Ver Perfil
Sumar Dos Variables De Tipo Date
« en: Lunes 7 de Marzo de 2005, 21:57 »
0
Hola gente! Mi duda es la siguiente:

estoy haciendo esto

Time + 10  

y me devuelve: 09/01/1900 17:55:58

yo lo que necesito es a la hora (17:55:58)  sumarle 10 minutos, ya pobré varias cosas y no se como hacerlo

Si alguien sabe como ...........

 :comp:
Everything that has a beginning has an end.....

Roll

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Sumar Dos Variables De Tipo Date
« Respuesta #1 en: Lunes 7 de Marzo de 2005, 22:37 »
0
usa la funcion DateAdd

mira el MSDN para mas info

suerte  :)
WOOOOOOOOOOOOOOOOOOOOOOOOOP

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Sumar Dos Variables De Tipo Date
« Respuesta #2 en: Lunes 7 de Marzo de 2005, 23:29 »
0
Hola solcito!.. :hola: ..mira ...no se si habrá una función que simplifique esto...pero se me ocurrió hacer esto y funcionó...es para sumar 10 minutos..pero si quieres le cambias la variable para que funcione con otros minutos.. ;) ..espero que te sirva... :P ..bye!.. :hola: ..nos vemos... :ph34r:  :comp:

Código: Text
  1. Private Sub Form_Load()
  2.     minutos_sumados = 10
  3.     Text1.Text = Time
  4.     hola = Time
  5.     hora = Hour(Time)
  6.     minutos = Minute(Time)
  7.     segundos = Second(Time)
  8.     tiempo_totales = (hora * 3600) + (minutos * 60) + segundos +(minutos_sumados * 60)
  9.     hora_nueva = tiempo_totales \ 3600
  10.     minutos_nuevos = (tiempo_totales Mod 3600) \ 60
  11.     segundos_nuevos = (tiempo_totales Mod 3600) Mod 60
  12.     Text2.Text = Str(hora_nueva) + ":" + Str(minutos_nuevos) + ":" + Str(segundos_nuevos)
  13. End Sub
  14.  
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

piyey

  • Miembro MUY activo
  • ***
  • Mensajes: 101
  • Nacionalidad: ni
    • Ver Perfil
    • Piyeycorp® - La imaginación es el límite
Re: Sumar Dos Variables De Tipo Date
« Respuesta #3 en: Miércoles 9 de Marzo de 2005, 01:53 »
0
Hola solcito...

Estube probando como resolver tu problema, y por analogía se me ocurrió esta idea:


Código: Text
  1. Private Sub Form_Load()
  2.     Dim a As Date
  3.     Dim b As String
  4.     a = Time
  5.     b = CStr(a)
  6.     Mid(b, 4, 2) = Mid(b, 4, 2) + 10
  7. End Sub
  8.  

el resultado te lo da en String, pero funciona. Solo habría que hacerle algunas modificaciones por lo de:

Código: Text
  1. 10:54:21 'Hora actual
  2. 10:64:21 'La hora que daría como resultado
  3.  

Solo evalualo y haces las respectivas operaciones para corregirlo...

See you!!!  :hola:
Piyey.
Si no vives para servir...
no sirves para vivir.


No soy el dueño del mundo...
pero si el hijo del dueño.


Entre la linea que divide la realidad de la ilusión...
se encuentra la imaginación

IlusionLand - Piyey

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Sumar Dos Variables De Tipo Date
« Respuesta #4 en: Miércoles 9 de Marzo de 2005, 02:56 »
0
Pero...piyey.... :huh: ...si tomas los caracteres correspondientes solo a los minutos puede ser que se sobrepasen los 60 m....y....date cuenta que hay un error ..por ejemplo en el ejemplo que pones..no existen las 10 con 64  :huh:  ..
Bueno bye :hola:  :comp:  :ph34r:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

none123

  • Miembro activo
  • **
  • Mensajes: 83
    • Ver Perfil
Re: Sumar Dos Variables De Tipo Date
« Respuesta #5 en: Miércoles 9 de Marzo de 2005, 06:02 »
0
Buenas...

Hay una forma muy practica, facil, y rapida:
------------------------------------------------------------------------------------
var =  Time() + #12:10:00 AM#  (suma 10 minutos)

var =  Time() + #12:00:10 AM#  (suma 10 segundos)

var =  Time() + #12:10:08 AM#  (suma 10 minutos con 8 segundos)
------------------------------------------------------------------------------------
Eso es todo es bastante sencillo y funciona a la perfeccion; gral mente la solucion mas logica y sencilla es la correcta de entre varias.
Por si las dudas si a alguien le queda duda del funcionamiento lo q hace esto es lo siguiente: time() --> toma la hora actual (del sistema)
               #12:00:00# --> esto va entre numeral para indicar de q es hora y para visual 12:00:00 es como para nosotros el cero osea representa el conjunto vacio si sumo solamente 12:00:00 a la hora actual no va a variar en nada; por eso cambiando los 00:00 de minutos y segundos ya empieza a sumar... thats all!!

Bueno espero q les sirva...

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Sumar Dos Variables De Tipo Date
« Respuesta #6 en: Miércoles 9 de Marzo de 2005, 15:18 »
0
Tienes mucha razón none123!..  :huh: lo probé y resulto muy bien.. ;) ...es más práctico que eso de estar multiplicando..
Gracias none123.. :hola: ..nos vemos!...  :sorcerer:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Sumar Dos Variables De Tipo Date
« Respuesta #7 en: Jueves 10 de Marzo de 2005, 20:46 »
0
Hola solcito!

Esto te puede servir perfectamente,,, es un poco largo pero funciona.

Código: Text
  1.  
  2.  Function SumarHoras(ByVal Hora1 As String, ByVal Hora2 As String) As String
  3.  
  4.     Dim H_Hora1      As String
  5.     Dim H_Hora2      As String
  6.     Dim M_Hora1      As String
  7.     Dim M_Hora2      As String
  8.     Dim ST_Horas     As Long
  9.     Dim ST_Minutos   As Long
  10.     Dim Horas        As Long
  11.     Dim Minutos      As Long
  12.     Dim MinTemp      As Long
  13.     Dim THoras       As String
  14.     Dim TMinutos     As String
  15.     Dim PosComa      As Integer
  16.     Dim temp         As Double
  17.     Dim SepDecimal   As String * 1
  18.  
  19.     '//Suma Horas
  20.     H_Hora1 = Left$(Hora1, (InStr(1, (Hora1), "h")) - 1)
  21.     H_Hora2 = Left$(Hora2, (InStr(1, (Hora2), "h")) - 1)
  22.     ST_Horas = Val(H_Hora1) + Val(H_Hora2)
  23.  
  24.     '//Suma Minutos
  25.     PosComa = Val(InStr(1, (Hora1), ",")) + 1
  26.  
  27.     M_Hora1 = Val(Mid$(Hora1, PosComa, Len(Hora1) - PosComa))
  28.  
  29.     PosComa = Val(InStr(1, (Hora2), ",")) + 1
  30.  
  31.     M_Hora2 = Val(Mid$(Hora2, PosComa, Len(Hora2) - PosComa))
  32.  
  33.     ST_Minutos = Val(M_Hora1) + Val(M_Hora2)
  34.  
  35.     MinTemp = (ST_Horas * 60) + ST_Minutos
  36.  
  37.     temp = (1 / 2)
  38.  
  39.     If InStr(1, temp, ",") <> 0 Then
  40.         SepDecimal = ","
  41.     End If
  42.     If InStr(1, temp, ".") <> 0 Then
  43.         SepDecimal = "."
  44.     End If
  45.  
  46.     'Hora exacta (Si MinTemp es nº entero)
  47.     If InStr(1, (MinTemp / 60), SepDecimal) = 0 Then
  48.         Horas = (MinTemp / 60)
  49.         Minutos = 0
  50.  
  51.     'Solo minutos (Si MinTemp < 60)
  52.     ElseIf MinTemp < 60 Then
  53.        Horas = 0
  54.        Minutos = MinTemp
  55.     Else
  56.  
  57.     'Hora con minutos
  58.         Horas = Int(MinTemp / 60)
  59.         Minutos = MinTemp - (Horas * 60)
  60.     End If
  61.  
  62.  
  63.     THoras = Horas
  64.     If Len(THoras) = 1 Then
  65.         THoras = "0" & Horas
  66.     Else
  67.         THoras = Horas
  68.     End If
  69.  
  70.     TMinutos = Minutos
  71.     If Len(TMinutos) = 1 Then
  72.         TMinutos = "0" & Minutos
  73.     Else
  74.         TMinutos = Minutos
  75.     End If
  76.  
  77.     SumarHoras = THoras & "h, " & TMinutos & "m"
  78.  
  79. End Function
  80.  
  81.  
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Sumar Dos Variables De Tipo Date
« Respuesta #8 en: Jueves 10 de Marzo de 2005, 20:55 »
0
Solcito!.. :hola: ..porcia..el mio tambien funciona!.. ..:whistling: ..chauuuuuu... :sorcerer:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

solcito

  • Miembro MUY activo
  • ***
  • Mensajes: 143
    • Ver Perfil
Re: Sumar Dos Variables De Tipo Date
« Respuesta #9 en: Jueves 10 de Marzo de 2005, 22:26 »
0
Hola Gente agradezco mucho su ayuda,

la solucion perfecta era, como dijo Roll,

DateAdd("n", 10, <HoraActual>)  como ejemplo.

funciona de maravillas y en una sola linea  :D


Saludos :hola:
Everything that has a beginning has an end.....

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Sumar Dos Variables De Tipo Date
« Respuesta #10 en: Jueves 10 de Marzo de 2005, 22:45 »
0
Solcito!.. :hola: ..me alegro que hayas podido solucionar ese problemita.. :P  ...y ahora hemos aprendido una nueva opción para el manejo de horas en pocas lineas de codigo!... :bravo: ..Gracias Chicos!.. :hola:   :guitar:  :ph34r:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[