Foros del Web » Programación para mayores de 30 ;) » .NET »

Restar horas

Estas en el tema de Restar horas en el foro de .NET en Foros del Web. que tal pues soy nuevo en esto del visual net y me he encontrado con la siguiente duda, como puedo restar horas ya tengo en ...
  #1 (permalink)  
Antiguo 23/03/2010, 20:30
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Restar horas

que tal pues soy nuevo en esto del visual net y me he encontrado con la siguiente duda, como puedo restar horas ya tengo en un form una hora inicial es decir "17:02" y en un segundo textbox la hora final " 19:17", lo q estoy tratando de hacer es q en un tercer texbox me muestre "02:15" que es la resta.........
(solo ocupo horas no fechas)

bueno de antemano muchas gracias por las respuestas


Saludos
  #2 (permalink)  
Antiguo 23/03/2010, 23:47
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 18 años, 9 meses
Puntos: 5
De acuerdo Restar horas

Hola, eduardo2009

No tengo exactamente como tu caso pero en algo puede ayudarte esta solucion.
Controles:
Código PHP:
Formulario text Fechas )
Dos Labels Hora InicialHora Final)
Dos Controles DateTimePicker
Primero
name dtpInicial Format Custom CustomFormat hh:mm tt )
Segundoname dtpFinal Format Custom CustomFormat hh:mm tt )
Agregamos un Button name btnDiferencia text (Diferencia)
Agregamos un textBox nametxtHora ReadOnly True 
Evento Cick del Button

Código PHP:


private void btnDiferencia_Click(object senderEventArgs e)
{
string cadena;

cadena=string.Format("{0:t0}",(dtpFinal.Value dtpInicial.Value));

txtHora.Text cadena.Substring(05);



Saludos ...
__________________
. .: El mejor Inicio :. .
  #3 (permalink)  
Antiguo 24/03/2010, 09:16
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Restar horas

Hola eduardo2009 haber si te sirve este trozo de código:

Código:
            string inicial = "17:02";
            TimeSpan tiempoI = TimeSpan.Parse(inicial);
            TimeSpan tiempoF = new TimeSpan(19, 17, 00);
            TimeSpan resta = tiempoF - tiempoI;
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #4 (permalink)  
Antiguo 24/03/2010, 14:33
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Restar horas

Cita:
Iniciado por atak Ver Mensaje
Hola, eduardo2009

No tengo exactamente como tu caso pero en algo puede ayudarte esta solucion.
Controles:
Código PHP:
Formulario text Fechas )
Dos Labels Hora InicialHora Final)
Dos Controles DateTimePicker
Primero
name dtpInicial Format Custom CustomFormat hh:mm tt )
Segundoname dtpFinal Format Custom CustomFormat hh:mm tt )
Agregamos un Button name btnDiferencia text (Diferencia)
Agregamos un textBox nametxtHora ReadOnly True 
Evento Cick del Button

Código PHP:


private void btnDiferencia_Click(object senderEventArgs e)
{
string cadena;

cadena=string.Format("{0:t0}",(dtpFinal.Value dtpInicial.Value));

txtHora.Text cadena.Substring(05);



Saludos ...
Cita:
Iniciado por erick_arcini Ver Mensaje
Hola eduardo2009 haber si te sirve este trozo de código:

Código:
            string inicial = "17:02";
            TimeSpan tiempoI = TimeSpan.Parse(inicial);
            TimeSpan tiempoF = new TimeSpan(19, 17, 00);
            TimeSpan resta = tiempoF - tiempoI;

gracias a ambos, la vdd intente acomodar esos codigos pero no se si correspondan a la escritura de visual net por q me marco puros errorres, y como les comentaba soy nuevo en este lenguaje..........


gracias


saludos
  #5 (permalink)  
Antiguo 24/03/2010, 14:39
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Restar horas

visual net no existe, o es visual basic .net o visual c# .net, por favor hay que especificar bien para no caer en estos roles.

Pero al parecer lo estas haciendo en vb.net

Prueba esto:

Código:
Dim inicial as String = "17:02"
Dim tiempoI as TimeSpan = TimeSpan.Parse(inicial)
Dim tiempoF as TimeSpan = new TimeSpan(19, 17, 00)
Dim resta as TimeSpan = tiempoF - tiempoI
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #6 (permalink)  
Antiguo 24/03/2010, 16:14
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Restar horas

Cita:
Iniciado por eduardo2009
soy nuevo en esto del visual net
Cada vez que veo a alguien refiriendose a visual net como visual basic.net me acuerdo de mis épocas de universidad cuando llegaba a hacer cosas en vb6, nos preguntaban que manejabamos y decíamos "yo sé programar en visual . . ." jeje, yo creo que es una costumbre que se ha venido arrastrando desde hace tiempo, pero a estas alturas del partido ya uno debe referirse a Visual Net como Plataforma .Net y sus lenguajes framework

sorry offtopic jeje
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 24/03/2010, 19:20
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Restar horas

Cita:
Iniciado por erick_arcini Ver Mensaje
visual net no existe, o es visual basic .net o visual c# .net, por favor hay que especificar bien para no caer en estos roles.

Pero al parecer lo estas haciendo en vb.net

Prueba esto:

Código:
Dim inicial as String = "17:02"
Dim tiempoI as TimeSpan = TimeSpan.Parse(inicial)
Dim tiempoF as TimeSpan = new TimeSpan(19, 17, 00)
Dim resta as TimeSpan = tiempoF - tiempoI
Que tal gracias por la aclaracion del nombre y efectivamente estoy usando vb.net
segun acomode el codigo de acuerdo a lo que entendi y lo puse de esta manera

Código:
Private Sub Restar_Horas()
        Dim inicial As String = itext01.Text
        Dim tiempoI As TimeSpan = TimeSpan.Parse(inicial)
        Dim tiempoF As TimeSpan = New TimeSpan(ftext01.Text)
        Dim resta As TimeSpan = tiempoF - tiempoI
        rtext01.Text = resta--------------------------------------> error
    End Sub
en esta parte me marca error cuando quiero q me muestre el resultado de la resta de la horas y me dice error, Un valor de tipo System.TimeSpan no se puede convertir en String

gracias por la ayuda

saludos
  #8 (permalink)  
Antiguo 25/03/2010, 09:22
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Restar horas

Hola, que bueno que quedo aclarado, con respecto a tu error tienes toda la razón, para ello solo tienes que convertirlo a string

rtext01.Text = resta.ToString("hh:mm:ss") 'la máscara de "hh:mm:ss" es opcional.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #9 (permalink)  
Antiguo 25/03/2010, 14:23
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Restar horas

Cita:
Iniciado por erick_arcini Ver Mensaje
Hola, que bueno que quedo aclarado, con respecto a tu error tienes toda la razón, para ello solo tienes que convertirlo a string

rtext01.Text = resta.ToString("hh:mm:ss") 'la máscara de "hh:mm:ss" es opcional.
listo ya hizo la resta solo q si me interesaba la mascara que dices solo q de esta manera "H:mm", pero bueno de la manera q me dices o de la q necesito yo si se la pongo me dice Error el argumento de sobrecarga porque ninguna de las funciones'ToString' a las que se tiene acceso acepta este numero de argumento y si se la quito y dejo la instruccion asi

Código:
rtext01.Text = resta.ToString
si me hace la resta con horas minutos y segundo, pero bueno si me pudieras ayudar para q solo me muestre horas y minutos estaria excelente sino de cualquier manera gracias por la ayuda ya hace la resta bien

saludos y nuevamente gracias
  #10 (permalink)  
Antiguo 25/03/2010, 16:22
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Restar horas

simplemente quitale el ":ss" y ya...
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #11 (permalink)  
Antiguo 25/03/2010, 18:25
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Restar horas

Cita:
Iniciado por erick_arcini Ver Mensaje
simplemente quitale el ":ss" y ya...

Que tal perdon por la insistencia pero si es lo q te comento lo ponga asi

Código:
rtext01.Text = resta.ToString("hh:mm:ss")
o

Código:
rtext01.Text = resta.ToString("hh:mm")
me marca el error
Error el argumento de sobrecarga porque ninguna de las funciones'ToString' a las que se tiene acceso acepta este numero de argumento

la unica manera q no me marca el error y me hace la resta sin problemas es asi

Código:
rtext01.Text = resta.ToString
por eso comentaba cual seria la manera q me aceptara el formato "hh:mm"

saludos y gracias
  #12 (permalink)  
Antiguo 26/03/2010, 09:33
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Restar horas

Hay que buscarle un poquito en como hacer las cosas man, te dejo esta linea, haber si te sirve así:

Código:
rtext01.Text = String.Format("{0}:{1}", resta.Hours.ToString("00"), resta.Minutes.ToString("00"))
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #13 (permalink)  
Antiguo 26/03/2010, 10:42
Avatar de eduardo2009  
Fecha de Ingreso: agosto-2009
Mensajes: 110
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Restar horas

Cita:
Iniciado por erick_arcini Ver Mensaje
Hay que buscarle un poquito en como hacer las cosas man, te dejo esta linea, haber si te sirve así:

Código:
rtext01.Text = String.Format("{0}:{1}", resta.Hours.ToString("00"), resta.Minutes.ToString("00"))
si claro lo se pero la vdd nunca habia realizado nada como este ni siquiera en vb6, si me funciono perfectamente y gracias por la ayuda y la paciencia


saludos
  #14 (permalink)  
Antiguo 26/03/2010, 10:46
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Restar horas

Cita:
Iniciado por eduardo2009 Ver Mensaje
si claro lo se pero la vdd nunca habia realizado nada como este ni siquiera en vb6, si me funciono perfectamente y gracias por la ayuda y la paciencia


saludos
De nada, pero si, te aconsejo que cuando tengas un tiempo libre le des una ojeada a las FAQ's del foro, son muy buenas además de que tienen bastante información de otros sitios.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #15 (permalink)  
Antiguo 09/04/2010, 12:33
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Restar horas

hola pues la verdad mi código no resta horas si que fechas ya estuve buscando en inter pero nada asi que aqui se los dejo recuerden "resta fechas" .


Public Overloads Function ObtenerVigencia(ByVal FechaServidor As String, ByVal FechaOtorgamiento As Date) As String
Dim Vigencia As String = ""
Dim ldAux As Date
Dim lnAnio As Integer
Dim lnMes As Integer
Dim lnDia As Integer
Dim DiaFO As Integer
Dim MesFO As Integer
Dim AñoFO As Integer
Dim FechaActual As Date
Dim FechaOtorgamientoMas10 As Date
If FechaOtorgamiento < "12-01-2005" Then
Vigencia = "PERMANENTE"
Else
FechaOtorgamientoMas10 = DateAdd(DateInterval.Year, 10, FechaOtorgamiento)
DiaFO = Microsoft.VisualBasic.DateAndTime.Day(FechaServido r)
MesFO = Month(FechaServidor)
AñoFO = Year(FechaServidor)
FechaActual = CDate(DiaFO.ToString + "/" + MesFO.ToString + "/" + AñoFO.ToString)

lnAnio = Year(FechaOtorgamientoMas10) - Year(FechaActual)
ldAux = DateAdd(DateInterval.Month, (12 * lnAnio), FechaActual)
'--- No cumplio el año aun
If ldAux > FechaOtorgamientoMas10 Then
lnAnio = lnAnio - 1
End If
lnMes = Month(FechaOtorgamientoMas10) - Month(FechaActual)
If lnMes < 0 Then
lnMes = lnMes + 12
End If
lnDia = Day(FechaOtorgamientoMas10) - Day(FechaActual)
If lnDia < 0 Then
lnDia = lnDia + DiasDelMes(FechaActual)
End If
Dim Núm_días As Integer = Day(DateSerial(Year(FechaOtorgamientoMas10), lnMes - 1, 0))

'Si el dia es mayor, no cumplio el mes
If (Day(FechaOtorgamientoMas10) < Day(FechaActual)) Then
If lnMes = 0 Then
lnMes = 11
Else
lnMes = lnMes - 1
End If
End If
If lnDia < 0 Then
lnDia = lnDia + Núm_días
End If
If lnAnio >= 10 And lnMes >= 0 And lnDia > 0 Then
Vigencia = "COMPROBAR"
Else
Vigencia = Vigencia & " Años: " & lnAnio & " Meses: " & lnMes & " Dias: " & lnDia ' & "Num_dias" & Núm_días
End If
End If
Return Vigencia
End Function

Etiquetas: horas, restar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:05.