如何更改哪一天是一周的第一天?

Gho*_*ngi 5 .net c# asp.net datetime

我需要在asp.net中更改一周的第一天,即我希望星期六成为一周的第一天.

例如,下面的代码应该在星期一返回3:

(int)DateTime.Now.DayOfWeek
Run Code Online (Sandbox Code Playgroud)

Dre*_*pin 7

你不能影响它的值,DateTime.DayOfWeek因为这是一个System.DayOfWeek枚举类型(即值是常量).定义System.DayOfWeek在下面的代码块中.所以,如果你想治疗DayOfWeek,就好像是3在周一和周六是一周的第一天,那么我必须假设你想有一个1至7基于数字系统.在这种情况下,您((int)DateTime.Now.DayOfWeek+1) % 7 + 1可以获得所需的数字.如果你不需要这个来进行计算,那么最好只比较DateTime.Now.DayOfWeek它的枚举常量(例如if( DateTime.Now.DayOfWeek == DayOfWeek.Monday ) ...)的值.

// Summary:
//     Specifies the day of the week.
[Serializable]
[ComVisible(true)]
public enum DayOfWeek
{
    // Summary:
    //     Indicates Sunday.
    Sunday = 0,
    //
    // Summary:
    //     Indicates Monday.
    Monday = 1,
    //
    // Summary:
    //     Indicates Tuesday.
    Tuesday = 2,
    //
    // Summary:
    //     Indicates Wednesday.
    Wednesday = 3,
    //
    // Summary:
    //     Indicates Thursday.
    Thursday = 4,
    //
    // Summary:
    //     Indicates Friday.
    Friday = 5,
    //
    // Summary:
    //     Indicates Saturday.
    Saturday = 6,
}
Run Code Online (Sandbox Code Playgroud)

  • 这很好,谢谢。因此,如果您希望星期一作为一周的第一天,则为 ((int)DateTime.Now.DayOfWeek+6) % 7 + 1 .... 对于 1-7 ...或删除 +1 对于 0-6 编号 (3认同)

小智 6

使用以下代码在 asp.net 应用程序中更改一周的第一天。

CultureInfo _culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
CultureInfo _uiculture = (CultureInfo)CultureInfo.CurrentUICulture.Clone();

_culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday;
_uiculture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday;

System.Threading.Thread.CurrentThread.CurrentCulture = _culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = _uiculture;
Run Code Online (Sandbox Code Playgroud)


CD.*_*D.. 1

我想你只需要改变你使用的文化(DayOfWeek Enumeration)。

Thread.CurrentThread.CurrentCulture = New CultureInfo("ar-EG")
Run Code Online (Sandbox Code Playgroud)