En código de Visual Basic 6, Tengo el siguiente:Equivalente de la Función WeekDay de VB6 en C#
dim I as Long
I = Weekday(Now, vbFriday)
Quiero que el equivalente en C#. ¿Alguien puede ayudar?
En código de Visual Basic 6, Tengo el siguiente:Equivalente de la Función WeekDay de VB6 en C#
dim I as Long
I = Weekday(Now, vbFriday)
Quiero que el equivalente en C#. ¿Alguien puede ayudar?
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
Esto puede ser llamado usando:
DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));
Las salidas anteriores:
4
como el martes es de 4 días después del viernes.
¿Te refieres a la propiedad DateTime.DayOfWeek?
DayOfWeek dow = DateTime.Now.DayOfWeek;
Sí, cada valor DateTime ha construido en un propiedad llamada DayOfWeek que devuelve una enumeración del mismo nombre ...
DayOfWeek dow = DateTime.Now.DayOfWeek;
Si desea que el valor integral acaba de convertir el valor a una enumeración En t.
int dow = (int)(DateTime.Now.DayOfWeek);
Vas a tener que añadir una constante de 1 a 6 y 7 a hacer Mod realinea para otro día, además de domingo, sin embargo ...
No creo que hay un equivalente de la forma de dos argumentos de la función de día de semana de VB.
Puedes 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;
}
Entonces llamándolo así:
int i = Weekday(DateTime.Now, DayOfWeek.Friday);
Devuelve 4 por hoy, como el martes es de 4 días después del viernes.
El valor de retorno de la función VB6 (y VB.NET) está basado en 1. 'return ((dt.DayOfWeek - startOfWeek + 7)% 7) + 1;' – 300hp