Sábado 21 de Diciembre de 2024, 17:12
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
comparar fechas, horas.... en C#
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: comparar fechas, horas.... en C# (Leído 13359 veces)
skan
Nuevo Miembro
Mensajes: 6
comparar fechas, horas.... en C#
«
en:
Viernes 14 de Noviembre de 2008, 14:47 »
0
Buenas
Estoy empezando con el C#.
Y estaba comprobando como utililzar algunos métodos para comparar horas....
Quisiera hacer algo así:
Console.WriteLine(DateTime.Compare(DateTime.Now.TimeOfDay,15:30));
pero ese 15:30 da error, ¿Cómo ser lo pongo?
(eso sólo era un ejemplo muy simple para ver que resultado da)
He intentado buscar ejemplos de manipulación de ese tipo de datos pero no encuentro
Gracias
Tweet
E.Baley
Miembro activo
Mensajes: 44
Re: comparar fechas, horas.... en C#
«
Respuesta #1 en:
Viernes 14 de Noviembre de 2008, 18:53 »
0
Estás comparando dos cosas diferentes:
- un objeto TimeSpan, en el primer término de la comparación, que es < DateTime.Now.TimeOfDay >
- un objeto nosequé, en el segundo término, que viene dado por < 15:30 > , cosa que no entiende el método "Compare"
Vayamos por partes. Parece que quieres comparar dos horas diferentes.
Puedes hacer dos cosas:
1- Usando el método "Compare" de DateTime.
Como debes comparar dos DateTimes, debes construir el segundo a partir de la Hora. Los dos DateTimes deben ser del mismo día, pues no tiene sentido comparar una hora de un día y otra de otro día. Ej:
Código: Text
DateTime DT_ahora = DateTime.Now;
DateTime DT_TresyMedia = new DateTime(DT_ahora.Year, DT_Ahora.Month, DT_Ahora.Day, 15, 30, 0);
Console.WriteLine(DateTime.Compare(DT_ahora, DT_TresyMedia));
Verás que para construir el segundo (con año, mes, dia, hora, min, seg) he usado la fecha de hoy.
2- Usando el método "Compare" de TimeSpan, que acepta como entrada dos TimeSpan diferentes, sin fecha.
Código: Text
TimeSpan TS1 = DateTime.Now.TimeOfDay; // Esto devuelve un TimeSpan
TimeSpan TS2 = new TimeSpan(15, 30, 0);
Console.WriteLine(TimeSpan.Compare(TS1, TS2));
saludos
skan
Nuevo Miembro
Mensajes: 6
Re: comparar fechas, horas.... en C#
«
Respuesta #2 en:
Lunes 17 de Noviembre de 2008, 13:50 »
0
Muchas gracias
Lo que necesitaba era precisamente algún ejemplo concreto y aclaratorio. Puesto que sólo quiero comparar horas usaré el método del TimeSpan
skan
Nuevo Miembro
Mensajes: 6
Re: comparar fechas, horas.... en C#
«
Respuesta #3 en:
Lunes 17 de Noviembre de 2008, 14:05 »
0
Lo que se me hace raro es que TimeSpan no se usa para horas concretas sino para intervalos de tiempo.
skan
Nuevo Miembro
Mensajes: 6
Re: comparar fechas, horas.... en C#
«
Respuesta #4 en:
Lunes 17 de Noviembre de 2008, 18:36 »
0
La cosa es que todo esto lo hago dentro un programa que realiza cálculos matemáticos, por ejemplo sobre series temporales y que internamente usa C# y librerias propias pero su documentación es muy básica, se remiten a que investigues por tu cuenta en la de .NET
Por ejemplo para mostrar la hora de una barra de datos se pone bar.DateTime.TimeOfDay
pero no sé como ver la del dato anterior, bar.Ago(1).DateTime.TimeOfDay bar.DateTime.Ago(1).TimeOfDay dan error
E.Baley
Miembro activo
Mensajes: 44
Re: comparar fechas, horas.... en C#
«
Respuesta #5 en:
Lunes 17 de Noviembre de 2008, 20:42 »
0
Con esos datos poco se puede hacer
habría que mirar en la documentación de ese programa cómo se obtiene cada objeto barra (bar), para luego obtener el DateTime de esa barra, una vez obtenida.
Lo usual sería tener un objeto que contiene todas las barras, y obtener la barra en cuestión mediante un método al uso.
Por ejemplo, supongamos que es una colección de barras (que llamaremos Serie), lo usual sería hacer algo así como:
bar laBarra = Serie[indice]; // donde indice es eso, la posición de esa barra.
TimeSpan horaDeLaBarra = laBarra.DateTime.TimeOfDay;
Otro ejemplo estándar sería esta posibilidad:
bar laBarra = Serie.Ago(10) // El método Ago(i) se aplica sobre la colección de barras, (no sobre una barra en concreto) y devuelve la barra de n periodos anterior.
etc ...
Pero ya te digo, sin saber a qué programa te refieres y sin saber su API, poco podemos aportar desde aquí
Saludos
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
comparar fechas, horas.... en C#