datetime各種處理。記錄下,備不時之需。

來源:互聯網
上載者:User

標籤:os   for   時間   new   amp   ar   

1. 擷取某段日期範圍內的所有日期

/// <summary>
    /// 擷取某段日期範圍內的所有日期,以數組形式返回
    /// </summary>
    /// <param name="dt1">開始日期</param>
    /// <param name="dt2">結束日期</param>
    /// <returns></returns>
    private DateTime[] GetAllDays(DateTime dt1, DateTime dt2)
    {
        List<DateTime> listDays = new List<DateTime>();
        DateTime dtDay = new DateTime();
        for (dtDay = dt1; dtDay.CompareTo(dt2) <= 0; dtDay = dtDay.AddDays(1))
        {
            listDays.Add(dtDay);
        }
        return listDays.ToArray();
    }

2. 根據年份和周次獲得對應的時間範圍

/// <summary>
    /// 根據年份和周次獲得對應的時間範圍
    /// </summary>
    /// <param name="yearInt"></param>
    /// <param name="weekInt"></param>
    /// <returns></returns>
    private string range(int yearInt, int weekInt)
    {
        int year, year1, year2, month1, month2, day1, day2, week, sum = 0;
        int[] days = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        int i;
        year = yearInt;
        week = weekInt;
        sum += 7 * (week - 1);        //修正總天數   
        switch (DateTime.Parse(year + "-1-1").DayOfWeek)
        {
            case DayOfWeek.Tuesday: { sum -= 1; break; }
            case DayOfWeek.Wednesday: { sum -= 2; break; }
            case DayOfWeek.Thursday: { sum -= 3; break; }
            case DayOfWeek.Friday: { sum -= 4; break; }
            case DayOfWeek.Saturday: { sum -= 5; break; }
            case DayOfWeek.Sunday: { sum -= 6; break; }
            default:
                break;
        }
        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
        { days[1] = 29; } for (i = 0; i < days.Length; i++)
        {
            if (sum >= days[i]) { sum -= days[i]; } else { break; }
        } year1 = year; month1 = i + 1; day1 = sum + 1;//修改開始日期   
        if (day1 < 1)
        { day1 += days[11]; month1 = 12; year1--; }
        year2 = year1; month2 = month1; day2 = day1 + 6;
        if (day2 > days[month1 - 1])
        {
            day2 -= days[month1 - 1];
            month2++; if (month2 > 12) { month2 = 1; year2++; }
        }
        string ss = year1 + "年" + month1 + "月" + day1 + "日~" + year2 + "年" + month2 + "月" + day2 + "日";
    
        return ss;
    }

3. 根據系統目前時間獲得今天是今年的第幾周

/// <summary>
    /// 根據系統目前時間獲得今天是今年的第幾周
    /// </summary>
    /// <param name="date"></param>
    /// <returns></returns>
    private int WeekOfYear(string date)
    {
        DateTime curDay = Convert.ToDateTime(date);

        int firstdayofweek = Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString() + "- " + "1-1 ").DayOfWeek);

        int days = curDay.DayOfYear;
        int daysOutOneWeek = days - (7 - firstdayofweek);

        if (daysOutOneWeek <= 0)
        {
            return 1;
        }
        else
        {
            int weeks = daysOutOneWeek / 7;
            if (daysOutOneWeek % 7 != 0)
                weeks++;

            return weeks + 1;
        }
    }

4.datetime.now.tostring("dddd");獲得當前日期的星期幾。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.