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

¿Hoy está entre dos fechas?: calendario celta

Estas en el tema de ¿Hoy está entre dos fechas?: calendario celta en el foro de .NET en Foros del Web. Muy buenas. Estoy intentando automatizar una etiqueta de modo que muestre el mes del calendario celta en el que nos encontremos. Cada mes celta no ...
  #1 (permalink)  
Antiguo 27/12/2004, 05:15
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
¿Hoy está entre dos fechas?: calendario celta

Muy buenas. Estoy intentando automatizar una etiqueta de modo que muestre el mes del calendario celta en el que nos encontremos. Cada mes celta no corresponde con los meses normales sino que se encuentra entre dos fechas concretas. De momento he hecho esto para VB:

Código:
Dim mesesCeltas() As String = {"Abedul", "Serval", "Fresno", "Aliso", "Sauce", "Espino", "Roble", "Acebo", "Avellano", "Madreselva", "Hiedra", "Carrizo", "Saúco"}
'Fechas en las que empieza cada mes celta
Dim intervalosCeltas() As String = {"24/12", "21/01", "18/02", "18/03", "15/04", "13/05", "10/06", "08/07", "05/08", "01/09", "30/09", "28/10", "25/11"}
Dim hoy As Date = Today
'Añadimos el año a las fechas
For i = 0 To intervalosCeltas.Length - 1
   intervalosCeltas(i) += "/" & hoy.Year
Next 
Ahora, cómo podría saber si hoy está entre la fecha i y la fecha i+1 del vector intervalosCeltas().

Y otra cosilla: ¿sería mejor que utilizase hashtable en lugar de dos vectores?

Gracias y feliz año.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 28/12/2004, 05:56
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Bueno, ya está resuelto. Costó, costó:

Código:
        Dim mesesNormales() As String = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"}
        Dim mesesCeltas() As String = {"Abedul", "Serbal", "Fresno", "Aliso", "Sauce", "Espino", "Roble", "Acebo", "Avellano", "Madreselva", "Hiedra", "Carrizo", "Saúco"}
        Dim intervalosCeltas() As String = {"24/12", "21/01", "18/02", "18/03", "15/04", "13/05", "10/06", "08/07", "05/08", "01/09", "30/09", "28/10", "25/11"}
        Dim hoy As Date = Today
        Dim ano As Integer
        If hoy.Day >= 24 And hoy.Month = 12 Then
            ano = hoy.Year + 1
            intervalosCeltas(0) += "/" & ano - 1
        Else
            ano = hoy.Year
            intervalosCeltas(0) += "/" & ano
        End If
        For i = 1 To intervalosCeltas.Length - 1
            intervalosCeltas(i) += "/" & ano
        Next
        For i = 0 To intervalosCeltas.Length - 2
            If (hoy >= intervalosCeltas(i) And hoy < intervalosCeltas(i + 1)) = True Then
                strMesCelta = mesesCeltas(i)
                Dim iniInter() As String = intervalosCeltas(i).Split("/")
                Dim finInter() As String = intervalosCeltas(i + 1).Split("/")
                strInterMesCelta = iniInter(0) & " de " & mesesNormales(iniInter(1) - 1) & " al " & finInter(0) & " de " & mesesNormales(finInter(1) - 1)
                Exit For
            End If
        Next
        i = intervalosCeltas.Length - 1
        If (hoy >= intervalosCeltas(i) And hoy < intervalosCeltas(0)) = True Then
            strMesCelta = mesesCeltas(i)
            Dim iniInter() As String = intervalosCeltas(i).Split("/")
            Dim finInter() As String = intervalosCeltas(0).Split("/")
            strInterMesCelta = iniInter(0) & " de " & mesesNormales(iniInter(1) - 1) & " al " & finInter(0) & " de " & mesesNormales(finInter(1) - 1)
        End If
Seguro que hay una forma sencillísima, pero bueno, ya está hecho.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 18:22.