Programa Dia de la Semana

para saber que dia de la semana es una fecha determinada, la formula que aplicamos en este algoritmo la podreis encontrar en internet.


CODIGO:

Private Sub Command1_Click()
    Dim modulo_mes_regular(1 To 12) As Integer
    Dim modulo_mes_bisiesto(1 To 12) As Integer
    Dim dias_semana(0 To 6) As String
    Dim dia, D, M, A As Integer


    ' tabla de módulos de mes para año regular    modulo_mes_regular(1) = 0
    modulo_mes_regular(2) = 3
    modulo_mes_regular(3) = 3
    modulo_mes_regular(4) = 6
    modulo_mes_regular(5) = 1
    modulo_mes_regular(6) = 4
    modulo_mes_regular(7) = 6
    modulo_mes_regular(8) = 2
    modulo_mes_regular(9) = 5
    modulo_mes_regular(10) = 0
    modulo_mes_regular(11) = 3
    modulo_mes_regular(12) = 5

     'tabla de módulos de mes para año bisiesto    modulo_mes_bisiesto(1) = 0
    modulo_mes_bisiesto(2) = 3
    modulo_mes_bisiesto(3) = 4
    modulo_mes_bisiesto(4) = 0
    modulo_mes_bisiesto(5) = 2
    modulo_mes_bisiesto(6) = 5
    modulo_mes_bisiesto(7) = 0
    modulo_mes_bisiesto(8) = 3
    modulo_mes_bisiesto(9) = 6
    modulo_mes_bisiesto(10) = 1
    modulo_mes_bisiesto(11) = 4
    modulo_mes_bisiesto(12) = 6

      'días de la semana
    dias_semana(0) = "Domingo"
    dias_semana(1) = "Lunes"
    dias_semana(2) = "Martes"
    dias_semana(3) = "Miércoles"
    dias_semana(4) = "Jueves"
    dias_semana(5) = "Viernes"
    dias_semana(6) = "Sábado"
   
    If IsDate(tanio.Text & "/" & tmes.Text & "/" & tdia.Text) Then
        ' datos de entrada        D = CInt(tdia.Text)
        A = CInt(tanio.Text)

    If A Mod 4 = 0 And (Not (A Mod 100 = 0) Or A Mod 400 = 0) Then
            ' es bisiesto            M = modulo_mes_bisiesto(CInt(tmes.Text))
        Else
            ' no es bisiesto            M = modulo_mes_regular(CInt(tmes.Text))
        End If
   
        'aplico la fórmula        dia = (((A - 1) Mod 7) + ((((A - 1) \ 4) - ((3 * (((A - 1) \ 100) + 1)) \ 4)) Mod 7) + M + D Mod 7) Mod 7
        semana.Caption = dias_semana(dia)
    Else
        semana.Caption = "incorrecta"
    End If
End Sub

en color azul estan las variables que vamos a utilizar,  y en rojo las explicaciones que no van a interferir en el codigo, copiadlo y pegadlo, y si no habeis roto nada deberia de funcionar.

No hay comentarios: