que - Equivalente a la función WeekDay de VB6 en C#
visual basic.net caracteristicas (4)
¿Te refieres a la propiedad DateTime.DayOfWeek ?
DayOfWeek dow = DateTime.Now.DayOfWeek;
En el código VB6, tengo lo siguiente:
dim I as Long
I = Weekday(Now, vbFriday)
Quiero el equivalente en C #. ¿Alguien puede ayudar?
No creo que haya un equivalente de la forma de dos argumentos de la función Weekday de VB.
Podrías emularlo usando algo como esto;
private static int Weekday(DateTime date, DayOfWeek startDay)
{
int diff;
DayOfWeek dow = date.DayOfWeek;
diff = dow - startDay;
if (diff < 0)
{
diff += 7;
}
return diff;
}
Luego llamándolo así:
int i = Weekday(DateTime.Now, DayOfWeek.Friday);
Devuelve 4 hoy, ya que el martes es 4 días después del viernes.
Sí, cada valor de DateTime tiene una propiedad incorporada llamada DayOfWeek que devuelve una enumeración del mismo nombre ...
DayOfWeek dow = DateTime.Now.DayOfWeek;
Si desea el valor integral simplemente transfiera el valor de enumeración a un int.
int dow = (int)(DateTime.Now.DayOfWeek);
Tendrás que agregar una constante de 1 a 6 y hacer Mod 7 para realinearlo a otro día además del domingo, sin embargo ...
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
Esto se puede llamar usando:
DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));
Los resultados anteriores:
4
como el martes es 4 días después del viernes.