1 votos

Algoritmo: El día de la semana actual siempre es el #2 en orden

Resumen: Quiero crear un algoritmo (o dos) donde el resultado sea una lista de números (1-7) donde #2 es hoy, #1 es ayer y #3.. es mañana y así sucesivamente.

Por ejemplo;

Si hoy es miércoles (3)
1. Lunes = 7
2. Martes = 1
3. Miércoles = 2
4. Jueves = 3
5. Viernes = 4

y si hoy es viernes (5)
- Lunes = 5
- Martes = 6
- Miércoles = 7
- Jueves = 1
- Viernes = 2

Limitación:
Los únicos números con los que puedes calcular son

  • El número de la semana (por ejemplo, Martes = 2, Viernes = 5)
  • 'Hoy', como una variable (por ejemplo, si Hoy = Miércoles, Hoy = 3)

es decir,

NuevoNúmero = 7 - (hoy + DíaDeLaSemana)

Lo anterior probablemente no tenga sentido, pero es solo para demostración de variables.

Estoy de acuerdo con dos algoritmos, uno para cada día desde hoy hasta el final de la semana, y otro para los días pasados (por ejemplo, si hoy es miércoles, #1 se aplica de miércoles a domingo y #2 se aplica de lunes a martes).

¿Cuál sería el algoritmo correcto para este asunto?

1voto

Austin Weaver Puntos 53

Que estos números representen los días (absolutamente, por nombre):

$$\begin{array}{|c|c|} \hline \text{día de la semana} & \text{#}\\ \hline\text{Lunes} & 1 \\ \text{Martes} & 2 \\ \text{Miércoles} & 3 \\ \text{Jueves} & 4 \\ \text{Viernes} & 5 \\ \text{Sábado} & 6 \\ \text{Domingo} & 7 \\\hline \end{array}$$ Y que el día actual se denote como $T$ (según esa tabla).

Entonces, el algoritmo que estás buscando es $\boxed{f(d) = 1+(4+T+d)\%7}.$

Por ejemplo, si hoy es Martes, $T = 2$. Digamos que quería saber qué día era ayer: entonces $f(1) = 1+(4+2+1)\%7 = 1+0 = 1$, lo que corresponde a Lunes, la respuesta correcta.

0voto

Cuija Gaming Puntos 81

Puedes usar el módulo para "envolver" alrededor de la semana.

En tu notación:

$NuevoNumero = (1 + DiaDeLaSemana - hoy) ~ \% ~ 7 + 1$

donde $x ~ \% ~ 7$ es el resto al dividir $x$ por $7$.

También puedes usar

$NuevoNumero = (8 + DiaDeLaSemana - hoy) ~ \% ~ 7 + 1$

lo cual evita restos de números negativos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X