Algoritmia - Calculo de los dias de la semana

 
Vista:

Calculo de los dias de la semana

Publicado por Oscar Ramon (1 intervención) el 16/04/2006 01:06:44
Por favor, estoy necesitando la formula para calcular los dias de la semana, es decir, a traves de una formula saber si es Lunes,Martes,Miercoles, etc. desde ya muchisimas gracias...FELICES PASCUAS>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Fórmula de Zeller para calcular días de la semana

Publicado por Alejandro (307 intervenciones) el 05/03/2024 21:09:08
¡Felices Pascuas! Aquí tienes una fórmula sencilla conocida como la "fórmula de Zeller" para calcular el día de la semana a partir de una fecha. Ten en cuenta que esta fórmula puede necesitar ajustes para manejar ciertos casos límite.

La fórmula de Zeller es la siguiente:

h = (q + ⌊13(m+1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ - 2 ⋅ J) mod 7

Donde:
- h es el día de la semana (0 = sábado, 1 = domingo, 2 = lunes, ..., 6 = viernes).
- q es el día del mes.
- m es el mes (3 = marzo, 4 = abril, ..., 14 = febrero, 15 = marzo).
- K es el año del siglo (es decir, el año mod 100).
- J es el siglo del año (es decir, año/100).

Aquí hay un ejemplo en Python para calcular el día de la semana:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def calcular_dia_semana(dia, mes, ano):
    if mes < 3:
        mes += 12
        ano -= 1
 
    K = ano % 100
    J = ano // 100
 
    h = (dia + (13 * (mes + 1)) // 5 + K + K // 4 + J // 4 - 2 * J) % 7
 
    # Ajustar el resultado para que coincida con la convención (0 = sábado, 1 = domingo, ..., 6 = viernes)
    return (h + 5) % 7
 
# Ejemplo de uso
dia = 4  # Día
mes = 4  # Mes (abril)
ano = 2022  # Año
resultado = calcular_dia_semana(dia, mes, ano)
 
dias_semana = ["Sábado", "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes"]
print(f"El {dia}/{mes}/{ano} es un {dias_semana[resultado]}.")

Puedes ajustar esta fórmula según el lenguaje de programación que estés utilizando. ¡Espero que te sea útil!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar