(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
Título: Re: comparar fechas, horas.... en C#
Publicado por: E.Baley en Viernes 14 de Noviembre de 2008, 18:53
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);
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
Título: Re: comparar fechas, horas.... en C#
Publicado por: skan en Lunes 17 de Noviembre de 2008, 13:50
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
Título: Re: comparar fechas, horas.... en C#
Publicado por: skan en Lunes 17 de Noviembre de 2008, 14:05
Lo que se me hace raro es que TimeSpan no se usa para horas concretas sino para intervalos de tiempo.
Título: Re: comparar fechas, horas.... en C#
Publicado por: skan en Lunes 17 de Noviembre de 2008, 18:36
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
Título: Re: comparar fechas, horas.... en C#
Publicado por: E.Baley en Lunes 17 de Noviembre de 2008, 20:42
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