В коде VB6 у меня есть следующее:
dim I as Long
I = Weekday(Now, vbFriday)
Я хочу эквивалент в С#. Кто-нибудь может помочь?
В коде VB6 у меня есть следующее:
dim I as Long
I = Weekday(Now, vbFriday)
Я хочу эквивалент в С#. Кто-нибудь может помочь?
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
Это можно вызвать с помощью:
DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));
Вышеуказанные результаты:
4
так как вторник через 4 дня после пятницы.
return ((dt.DayOfWeek - startOfWeek + 7) % 7) + 1;
- person 300hp; 19.09.2012
Вы имеете в виду свойство DateTime.DayOfWeek?
DayOfWeek dow = DateTime.Now.DayOfWeek;
Да, каждое значение DateTime имеет встроенное свойство DayOfWeek, которое возвращает перечисление с тем же именем...
DayOfWeek dow = DateTime.Now.DayOfWeek;
Если вы хотите получить интегральное значение, просто приведите значение перечисления к типу int.
int dow = (int)(DateTime.Now.DayOfWeek);
Однако вам придется добавить константу от 1 до 6 и выполнить мод 7, чтобы перенастроить ее на другой день, кроме воскресенья...
Я не думаю, что есть эквивалент двухаргументной формы функции VB Weekday.
Вы можете эмулировать это, используя что-то вроде этого;
private static int Weekday(DateTime date, DayOfWeek startDay)
{
int diff;
DayOfWeek dow = date.DayOfWeek;
diff = dow - startDay;
if (diff < 0)
{
diff += 7;
}
return diff;
}
Затем назовите это так:
int i = Weekday(DateTime.Now, DayOfWeek.Friday);
Он возвращает 4 на сегодняшний день, так как вторник на 4 дня позже пятницы.