Dans le code VB6, je donne les résultats suivants:équivalent de WeekDay Fonction de VB6 en C#
dim I as Long
I = Weekday(Now, vbFriday)
Je veux l'équivalent en C#. Quelqu'un peut-il aider?
Dans le code VB6, je donne les résultats suivants:équivalent de WeekDay Fonction de VB6 en C#
dim I as Long
I = Weekday(Now, vbFriday)
Je veux l'équivalent en C#. Quelqu'un peut-il aider?
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
Cela peut être appelé à l'aide:
DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));
Les sorties ci-dessus:
4
que mardi est de 4 jours après le vendredi.
Vous voulez dire la propriété DateTime.DayOfWeek?
DayOfWeek dow = DateTime.Now.DayOfWeek;
Oui, chaque valeur DateTime a construit dans la propriété appelée DayOfWeek qui retourne une énumération du même nom ...
DayOfWeek dow = DateTime.Now.DayOfWeek;
Si vous voulez que la valeur intégrale Reportez-vous seulement la valeur d'énumération à une int.
int dow = (int)(DateTime.Now.DayOfWeek);
Vous devez ajouter une constante de 1 à 6 et faire Mod 7 pour réaligner à un autre jour en plus dimanche, mais ...
Je ne pense pas qu'il y ait un équivalent de la forme à deux arguments de la fonction Weekday de VB.
Vous pouvez l'émuler en utilisant quelque chose comme ceci;
private static int Weekday(DateTime date, DayOfWeek startDay)
{
int diff;
DayOfWeek dow = date.DayOfWeek;
diff = dow - startDay;
if (diff < 0)
{
diff += 7;
}
return diff;
}
Puis l'appeler comme ceci:
int i = Weekday(DateTime.Now, DayOfWeek.Friday);
Il retourne 4 aujourd'hui, comme mardi est de 4 jours après le vendredi.
La valeur de retour de la fonction VB6 (et VB.NET) est basée sur 1. 'return ((dt.DayOfWeek - startOfWeek + 7)% 7) + 1;' – 300hp