我怎么知道一个月的哪一天?

问题描述 投票:0回答:1

我必须找出具有给定日期的月份中的某天,比方说我具有01/26/2020日期,现在日期26是该月的第4个星期日,如何找出月份中具有可重复计数的日期?

c# date dayofweek dayofmonth
1个回答
0
投票

没有直接的方法可以实现。您需要调用以下代码。

 DateTime dateValue = new DateTime(2019, 12, 19);
        int getDayOfWeek = GetWeekNumberOfMonth(dateValue);
        //convert to ordinal 
       string ordinalWeekOfMonth = AddOrdinal(getDayOfWeek);
      Console.WriteLine(ordinalWeekOfMonth + " " + dateValue.DayOfWeek);//output like 2nd sunday

以下相关方法可用于调用上面的代码

     public static int GetWeekNumberOfMonth(DateTime date)
    {
        date = date.Date;
        DateTime firstMonthDay = new DateTime(date.Year, date.Month, 1);
        DateTime firstMonthMonday = firstMonthDay.AddDays((DayOfWeek.Monday + 7 - firstMonthDay.DayOfWeek) % 7);
        if (firstMonthMonday > date)
        {
            firstMonthDay = firstMonthDay.AddMonths(-1);
            firstMonthMonday = firstMonthDay.AddDays((DayOfWeek.Monday + 7 - firstMonthDay.DayOfWeek) % 7);
        }
        return (date - firstMonthMonday).Days / 7 + 1;
    }

    public static string AddOrdinal(int num)
    {
        if (num <= 0) return num.ToString();

        switch (num % 100)
        {
            case 11:
            case 12:
            case 13:
                return num + "th";
        }

        switch (num % 10)
        {
            case 1:
                return num + "st";
            case 2:
                return num + "nd";
            case 3:
                return num + "rd";
            default:
                return num + "th";
        }

    }
© www.soinside.com 2019 - 2024. All rights reserved.