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

problemas con la fecha

Estas en el tema de problemas con la fecha en el foro de .NET en Foros del Web. salu2 a los genios devbnet estoy aprendiendo a programas en este lenguaje, ademas estoy ceando una pequeña aplicacion para controlar el acceso de veviculos a ...
  #1 (permalink)  
Antiguo 11/03/2009, 12:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
problemas con la fecha

salu2 a los genios devbnet

estoy aprendiendo a programas en este lenguaje, ademas estoy ceando una pequeña aplicacion para controlar el acceso de veviculos a mi comunidad.

El problema es el siguiente, nuestro genio de presidente atrazo la hora 30 minutos, por lo tanto si son las 10:31 el reloj debe marcar las 10;01
aqui no hay problema, pero si son las 0;12 de la mañana comienza los problemas
determine la hora y los minutos de esta forma y obtengo una respuesta clara

hora = Format(Now, "hh")
minuto = Format(Now, "mm")

no se si es la mejor manera pero funciona, el problema viena al determinar el dia, con este formato

ho es 11, si aplico la misma idea

dia= Format(Now, "dd") obtengo 1 en vez de 11, porsupuestos
debe existir una forma mas facil de recoger el dia de la fecha, si alguien me lo puede indicar se los agradezco.

lo demas es sencillo , validar si es el dua 1 y por supuesto validar los meses crear la fecha y la hora y desplegarla. actualizandola cada minuto con un timer.

trate tambien de poner toda la fecha en una variable y sacar los dias, meses y años con algo equivalente al substr)var,n,m) pero da valores que no estan acorde

GRACIAS
  #2 (permalink)  
Antiguo 11/03/2009, 14:44
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: problemas con la fecha

Sencillamente puedes utilizar el Datetime propio de .Net
digamos
tengo la fecha en una variable

Dim Fecha as String = Now().tostring()

Si yo quiero agregarle o quitarle alguna parte de la fecha haria lo siguiente

Dim FechaAlterada as Datetime

FechaAlterada = Datetime.parse(Fecha).AddMinutes(-30) ' Aqui le estoy restando a la fecha 30 minutos

Eso seria todo
y para devolverlo

msgbox(FechaAlterada.tostring())
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 11/03/2009, 15:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: problemas con la fecha

Esa respuesta que dio Dradi7 esta bien, pero también puedes utilizar el tipo Date y funciona de la misma manera

Código:
Dim fecha as Date
fecha = Now.AddMinutes(-30)
De esa forma le restas 30 min a la hora actual, pero si se supone que ya restaste la hora en el relog, no deberias de hacer eso, simplemente toma la hora normal.

Código:
fecha = Now
Ahora que si quieres sacarle los dias, meses y años lo puedes hacer si tantas complicaciones.

Código:
Dim diadelmes as Integer=Now.Day() '1 a 30 ó 31
Dim diadelasemana as Integer=Now.DayOfWeek() '1 al 7 que corresponden a lunes, martes,etc
Dim diadelaño as Integer=Now.DayOfYear() ' 1 a 365 
Dim minutos as Integer=Now.Minute()  '0 a 59
Dim segundos as Integer=Now.Second() '0 a 59
Dim mes as Integer=Now.Month() '1 al 12
Dim year as Integer=Now.Year() 'formato largo 1985
Dim year2 as Integer=Now.ToString("yy") 'formato corto 85
Espero que te quede mas claro
  #4 (permalink)  
Antiguo 12/03/2009, 11:32
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
Gracia

Gracias por su ayuda, estare probando ambas ideas y luego les digo cual funciona mejor

oonai / 2009: -)
  #5 (permalink)  
Antiguo 12/03/2009, 14:21
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Gracia

Pregunta para ustedes

diseñe el codigo de esta forma, seguro hay algo mas facil, pero al poner a repetir la funcion da un error

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
fecha()
horas()
End Sub
Sub fecha()
Dim fecha As Date
fecha = Now.AddMinutes(-30)
Dim valorfecha, valorhora As Char
Dim diadelmes As Integer = Now.Day() '1 a 30 ó 31
Dim diadelasemana As Integer = Now.DayOfWeek() '1 al 7 que corresponden a lunes, martes,etc
Dim diadelaño As Integer = Now.DayOfYear() ' 1 a 365
Dim hora As Integer = fecha.Hour() '0 a 59
Dim minutos As Integer = fecha.Minute() '0 a 59
Dim min As Char
txtfecha.Text = Format(fecha, "dd/MM /yyyy")
End Sub
Sub horas()
Dim fecha As Date
fecha = Now.AddMinutes(-30)
Dim hora As Integer = fecha.Hour() '0 a 59
Dim minutos As Integer = fecha.Minute() '0 a 59
Dim min As Char
txthora.Text = hora
Dim hor As Char
Select Case hora
Case 1
hor = "01"
txthora.Text = hor
Case 2
hor = "02"
txthora.Text = hor
Case 3
hor = "03"
txthora.Text = hor
Case 4
hor = "04"
txthora.Text = hor
Case 5
hor = "05"
txthora.Text = hor
Case 5
hor = "06"
txthora.Text = hor
Case 7
hor = "07"
txthora.Text = hor
Case 8
hor = "08"
txthora.Text = hor
Case 9
hor = "09"
txthora.Text = hor
End Select
txtminutos.Text = minutos
Select Case minutos
Case 1
min = "01"
txtminutos.Text = min
Case 2
min = "02"
txtminutos.Text = min
Case 3
min = "03"
txtminutos.Text = min
Case 4
min = "04"
txtminutos.Text = min
Case 5
min = "05"
txtminutos.Text = min
Case 5
min = "06"
txtminutos.Text = min
Case 7
min = "07"
txtminutos.Text = min
Case 8
min = "08"
txtminutos.Text = min
Case 9
min = "09"
txtminutos.Text = min
End Select
'aqui va timeer co 60 seg
'Ahora cuando agrego estas lineas, para repetir la funcion indeterminadamente sin el timer
'da el siguiente EEROR
'Excepción no controlada del tipo 'System.StackOverflowException' en system.windows.forms.dll

'hora = Nothing
'Call horas()

End Sub

que solucion le ven ustedes y como ejecuto el timer que se llama tiempo por 60 seg

MUCHAS GRACIAS Y DISCULPEN LA NOVATADA
  #6 (permalink)  
Antiguo 12/03/2009, 17:11
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: problemas con la fecha

Buena habria otra forma mas sencilla de poder realizar este codigo Ejm:

En tu Form1
le has agregado un Timer con un intervalo de 30000 - q corresponde a 60 segundos - para un segundo vendria a ser 500

el en Timer en el evento

sub Timer_Tick(...)

Dim Fecha as Datetime
Fecha = Now.AddMinutes(-30)
txthora.text = Fecha.toString("hh")
txtminutos.text = Fecha.toString("mm")

end sub


en el Evento Load del Formulario

sub form1_load(....)

txtfecha.text = Now.AddMinutes(-30).toString("dd/MM/yyyy")
timer.start()

end sub

Con Esto Tienes tu Timer q recorre cada 60 segundos y aumenta los minutos sin necesidad de realizar mucho codgio

Para mi Parecer Seria Mejor
q la Hora y Los Minutos se muestren en una sola caja de texto

Ejm:

txtreloj.text = Now.AddMinutes(-30).toString("hh:mm:ss")

este codigo seria mucho mejor q el q puse arriba:

Dim Fecha as Datetime
Fecha = Now.AddMinutes(-30)
txthora.text = Fecha.toString("hh")
txtminutos.text = Fecha.toString("mm")
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 12/03/2009, 19:49
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: problemas con la fecha

Gracias DRADI7, es bastante eficiente, y sencillo, creo que estaba buscandole lo spelos a
las bolas de billar. JAJAJA. Gracias por tu ayuda.
Si uno desea dar algun consejo a un usuario de ASP, puede hacerlo o hay q estar autorizado por el webmaster de la pagina??. Gracias y saludos

Si deseas disfrutar del arco iris, primero deberás soportar la lluvia " Dolly Parton, USA "
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 10:41.