C6中VB6的WeekDay函数的等价性
在VB6代码中,我有以下内容:
dim I as Long I = Weekday(Now, vbFriday)
我想要C#中的等价物。 任何人都可以帮忙吗?
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天。
你的意思是DateTime.DayOfWeek属性?
DayOfWeek dow = DateTime.Now.DayOfWeek;
是的,每个DateTime值都有一个名为DayOfWeek的内置属性,它返回一个同名的枚举…
DayOfWeek dow = DateTime.Now.DayOfWeek;
如果您想要整数值,只需将枚举值强制转换为int。
int dow = (int)(DateTime.Now.DayOfWeek);
你必须添加一个从1到6的常量,然后使用Mod 7将它重新排列到星期日以外的另一天,但是…
我不认为VB的工作日函数有两种forms。
你可以用这样的东西来模仿它;
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天。