Question

Dans le code VB6, j'ai les éléments suivants:

dim I as Long 

I = Weekday(Now, vbFriday) 

Je veux l'équivalent en C #. Quelqu'un peut-il aider?

Était-ce utile?

La solution

public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
    return (dt.DayOfWeek - startOfWeek + 7) % 7;
}

Ceci peut être appelé avec:

DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));

Les sorties ci-dessus:

4

comme mardi est 4 jours après vendredi.

Autres conseils

Vous voulez dire la propriété DateTime.DayOfWeek ?

DayOfWeek dow = DateTime.Now.DayOfWeek;

Oui, chaque valeur DateTime a une propriété intégrée appelée DayOfWeek qui renvoie une énumération du même nom ...

DayOfWeek dow = DateTime.Now.DayOfWeek;

Si vous voulez que la valeur intégrale transforme simplement la valeur d’énumération en int.

int dow = (int)(DateTime.Now.DayOfWeek);

Vous devrez ajouter une constante de 1 à 6 et faire Mod 7 pour le réaligner sur un autre jour que dimanche, cependant ...

Je ne pense pas qu'il existe un équivalent de la forme à deux arguments de la fonction Weekday de VB.

Vous pouvez l'imiter 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, appelez-le comme suit:

int i = Weekday(DateTime.Now, DayOfWeek.Friday);

Il renvoie 4 aujourd'hui, mardi étant à 4 jours après vendredi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top