木子屋 Dnawo's BLOG

C#计算某一周第一天的日期

👤 dnawo 📅 2013-05-29 👁 4586 👍 0 💬 0 🔄 来源:本站原创
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(FirstDayOfWeek(2).ToShortDateString());  //2013/1/7
            Console.ReadKey();
        }

        /// <summary>
        /// 计算当年某一周第一天日期
        /// </summary>
        /// <param name="weeks"></param>
        /// <returns></returns>
        public static DateTime FirstDayOfWeek(int weeks)
        {
            return FirstDayOfWeek(DateTime.Now.Year, weeks);
        }

        /// <summary>
        /// 计算某一年某一周第一天日期
        /// </summary>
        /// <param name="year"></param>
        /// <param name="weeks"></param>
        /// <returns></returns>
        public static DateTime FirstDayOfWeek(int year, int weeks)
        {
            DateTime FirstDay = DateTime.Parse(string.Format("{0}-{1}-{2}", year, "1", "1"));
            int dayofweek = 0;
            switch (FirstDay.DayOfWeek)
            {
                case DayOfWeek.Monday:
                    dayofweek = 1;
                    break;
                case DayOfWeek.Tuesday:
                    dayofweek = 2;
                    break;
                case DayOfWeek.Wednesday:
                    dayofweek = 3;
                    break;
                case DayOfWeek.Thursday:
                    dayofweek = 4;
                    break;
                case DayOfWeek.Friday:
                    dayofweek = 5;
                    break;
                case DayOfWeek.Saturday:
                    dayofweek = 6;
                    break;
                case DayOfWeek.Sunday:
                    dayofweek = 7;
                    break;
            }
            int dayofyear = (weeks - 1) * 7;
            if (dayofweek > 1) dayofyear -= (dayofweek - 1);
            if (dayofyear < 0) dayofyear = 0;
            return FirstDay.AddDays(dayofyear);
        }
    }
}

评论(0)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 EasyUI插件numberbox在Chrome中不能粘贴解决方… 下一篇 → RAID0、RAID1和RAID5原理介绍