C# VB6在C中的平日函数等价#
在VB6代码中,我有以下内容:C# VB6在C中的平日函数等价#,c#,datetime,vb6,dayofweek,weekday,C#,Datetime,Vb6,Dayofweek,Weekday,在VB6代码中,我有以下内容: dim I as Long I = Weekday(Now, vbFriday) 我想要C#的等价物。有人能帮忙吗?你是说酒店吗 DayOfWeek dow = DateTime.Now.DayOfWeek; 是的,每个DateTime值都有一个名为DayOfWeek的内置属性,该属性返回一个同名的枚举 DayOfWeek dow = DateTime.Now.DayOfWeek; 如果需要整数值,只需将枚举值强制转换为int int dow = (i
dim I as Long
I = Weekday(Now, vbFriday)
我想要C#的等价物。有人能帮忙吗?你是说酒店吗
DayOfWeek dow = DateTime.Now.DayOfWeek;
是的,每个DateTime值都有一个名为DayOfWeek的内置属性,该属性返回一个同名的枚举
DayOfWeek dow = DateTime.Now.DayOfWeek;
如果需要整数值,只需将枚举值强制转换为int
int dow = (int)(DateTime.Now.DayOfWeek);
你必须添加一个从1到6的常数,然后执行Mod 7将其重新对齐到周日以外的另一天,但是 我认为VB的平日函数没有两个参数形式的等价物 你可以用这样的东西来模仿它
private static int Weekday(DateTime date, DayOfWeek startDay)
{
int diff;
DayOfWeek dow = date.DayOfWeek;
diff = dow - startDay;
if (diff < 0)
{
diff += 7;
}
return diff;
}
今天返回4,因为星期二是星期五之后的4天
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天。VB6(和VB.NET)函数的返回值是以1为基础的<代码>返回((dt.DayOfWeek-startOfWeek+7)%7)+1代码>
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}