Saltar al contenido

Obtenga la fecha del miércoles de la semana pasada/próxima en C#

Mantén la atención porque en este enunciado vas a hallar la respuesta que buscas.

Solución:

Para encontrar el próximo miércoles simplemente sigue agregando días hasta que encuentres uno. Para encontrar el miércoles anterior, sigue restando días hasta que llegues a uno.

DateTime nextWednesday = DateTime.Now.AddDays(1);
while (nextWednesday.DayOfWeek != DayOfWeek.Wednesday)
    nextWednesday = nextWednesday.AddDays(1);
DateTime lastWednesday = DateTime.Now.AddDays(-1);
while (lastWednesday.DayOfWeek != DayOfWeek.Wednesday)
    lastWednesday = lastWednesday.AddDays(-1);

Utilice la rutina AddDays:

        // increment by the number of offset days to get the correct date
        DayOfWeek desiredDay = DayOfWeek.Wednesday;
        int offsetAmount = (int) desiredDay - (int) DateTime.Now.DayOfWeek;
        DateTime lastWeekWednesday = DateTime.Now.AddDays(-7 + offsetAmount);
        DateTime nextWeekWednesday = DateTime.Now.AddDays(7 + offsetAmount);

¡Deberias hacer eso!

NOTA: Si es un lunes, “Último miércoles” le dará el último miércoles que ocurrió, pero “Próximo miércoles” le dará el miércoles dentro de 9 días. Si quisiera obtener el miércoles en dos días, necesitaría usar el operador “%”. Eso significa que la segunda instrucción “la próxima semana” sería “(7 + cantidad de compensación) % 7”.

DateTime.Now.AddDays(7) y DateTime.Now.AddDays(-7) Así es como puedes hacer aritmética, asumiendo que estás en miércoles. Si no lo eres, lo que tendrías que hacer es usar el DayOfWeek propiedad para determinar el número de días (positivos y negativos) que necesitaría para determinar qué día es ‘miércoles’. Entonces puedes pasar ese valor a AddDays.

Por ejemplo, si hoy fuera martes, AddDays(-6) para el miércoles pasado y AddDays(8) para el proximo miercoles.

Te dejo la tarea de calcular esos.

Aquí tienes las comentarios y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *