Día de la semana de una fecha C#
Mediante .NET es posible obtener el día de la semana de una fecha utilizando C# sin hacer líneas de código para esta tarea.
Las herramientas de .Net permite utilizar las propiedades de una fecha para obtener el número y el nombre del día.
Declaración de fechas
Declaremos siete fechas continuas de los días de la semana para realizar los ejemplos.
DateTime dia1 = Convert.ToDateTime("10-06-2019");
DateTime dia2 = Convert.ToDateTime("11-06-2019");
DateTime dia3 = Convert.ToDateTime("12-06-2019");
DateTime dia4 = Convert.ToDateTime("13-06-2019");
DateTime dia5 = Convert.ToDateTime("14-06-2019");
DateTime dia6 = Convert.ToDateTime("15-06-2019");
DateTime dia7 = Convert.ToDateTime("16-06-2019");
A partir de estas fechas obtendremos el número y el nombre del día utilizando las propiedades del DateTime.
Obtener número de día
La propiedad que permite obtener el número del día es DayOfWeek de una variable DateTime y castearlo como un entero.
Por lo tanto, el código de los siete días quedaría de la siguiente manera.
byte dia1 = (byte)dia1.DayOfWeek;// Resultado: 1
byte dia2 = (byte)dia2.DayOfWeek;// Resultado: 2
byte dia3 = (byte)dia3.DayOfWeek;// Resultado: 3
byte dia4 = (byte)dia4.DayOfWeek;// Resultado: 4
byte dia5 = (byte)dia5.DayOfWeek;// Resultado: 5
byte dia6 = (byte)dia6.DayOfWeek;// Resultado: 6
byte dia7 = (byte)dia7.DayOfWeek;// Resultado: 0
En .Net los días de la semana inician el domingo, por lo tanto, este día tiene el número 0, lunes 1, martes 2, etc.
Podría interesarte Obtener el número de días entre dos fechas en C#
Obtener nombre del día
El número del día es probable que sea utilizado en programación, sin embargo, para el usuario es necesario mostrar el nombre.
Para obtener el nombre del día de una fecha es necesario formatearlo y si es necesario establecer la referencia cultural.
Vamos a obtener los nombres de los días en español, por lo tanto, el código quedaría como sigue.
string dia1 = dia1.ToString("dddd", new CultureInfo("es-ES"));
string dia2 = dia2.ToString("dddd", new CultureInfo("es-ES"));
string dia3 = dia3.ToString("dddd", new CultureInfo("es-ES"));
string dia4 = dia4.ToString("dddd", new CultureInfo("es-ES"));
string dia5 = dia5.ToString("dddd", new CultureInfo("es-ES"));
string dia6 = dia6.ToString("dddd", new CultureInfo("es-ES"));
string dia7 = dia7.ToString("dddd", new CultureInfo("es-ES"));
Si no se establece la referencia cultural por defecto toma el idioma del servidor, para evitar problemas es mejor establecerlo.
Prueba colocar el código en un proyecto de consola, podrás observar el siguiente resultado.
No necesitas realizar métodos para obtener esta información de las fechas ya que .net te lo facilita.
Muchas gracias por tu aporte, me ha servido de mucha ayuda