W kodzie VB6, mam następujący:Equivalent dnia tygodnia Funkcja VB6 w C#
dim I as Long
I = Weekday(Now, vbFriday)
Chcę odpowiednik w języku C#. Czy ktoś może pomóc?
W kodzie VB6, mam następujący:Equivalent dnia tygodnia Funkcja VB6 w C#
dim I as Long
I = Weekday(Now, vbFriday)
Chcę odpowiednik w języku C#. Czy ktoś może pomóc?
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
ten można wywołać za pomocą:
DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));
Powyższe wyjścia:
4
jak wtorku 4 dni po piątku.
Masz na myśli właściwość DateTime.DayOfWeek?
DayOfWeek dow = DateTime.Now.DayOfWeek;
Tak Każda wartość DateTime posiada wbudowany właściwość o nazwie DAYOFWEEK zwracającej wyliczenie tej samej nazwie ...
DayOfWeek dow = DateTime.Now.DayOfWeek;
Jeśli chcesz wartość integralną prostu rzucić wartość wyliczenia do int.
int dow = (int)(DateTime.Now.DayOfWeek);
Musisz dodać stałą od 1 do 6 i 7, aby zrobić Mod wyrównać go do innego dnia oprócz niedzieli, jednak ...
nie sądzę istnieje odpowiednik dwie argumenty w postaci funkcji dnia roboczego VB.
Można go emulować za pomocą czegoś takiego;
private static int Weekday(DateTime date, DayOfWeek startDay)
{
int diff;
DayOfWeek dow = date.DayOfWeek;
diff = dow - startDay;
if (diff < 0)
{
diff += 7;
}
return diff;
}
Następnie nazywając go tak:
int i = Weekday(DateTime.Now, DayOfWeek.Friday);
Zwraca 4 do dzisiaj, jak wtorek jest 4 dni po piątku.
Wartość zwracana funkcji VB6 (i VB.NET) wynosi 1. 'return ((dt.DayOfWeek - startOfWeek + 7)% 7) + 1;' – 300hp