一个星期有 7 天,我要通过一个日期值,得到这个日期 所在 整 周 的日期数据,
比如我有今天日期 “2009/11/20” ,那么就要得到   “星期日 2009/11/15  星期一 2009/11/16 .....星期六 2009/11/21”如此要怎么做?

解决方案 »

  1.   

    <script>
    oToday=new Date();
    currentDay=oToday.getDay();
    if(currentDay==0){currentDay=7}
    mondayTime=oToday.getTime()-(currentDay-1)*24*60*60*1000;
    sundayTime=oToday.getTime()+(7-currentDay)*24*60*60*1000;
    alert("今天是"+oToday.getDate()+"号,星期"+currentDay+"\r");
    alert("周一是"+new Date(mondayTime).getDate()+"号,周日是"+new Date(sundayTime).getDate()+"号")
    alert("周一 "+new Date(mondayTime).toLocaleDateString()+"\n周末 "+new Date(sundayTime).toLocaleDateString()+" "+new Date(mondayTime).toLocaleTimeString())
    </script>一个js脚本代码!!
    思路:
    如果是C#写法也是差不多的!先得到给定时间是星期几  相应的加减如果是刚好月底就得去计算闰年、月数、日期的加减!!
      

  2.   

    以下周一为第一天           DateTime dt = new DateTime(2009, 11, 20);
               dt= dt.AddDays(1 -(int)dt.DayOfWeek); 获取日期所在周的周一的日期 结果为为2009-11-20所在周周一为  2009-11-16 剩下的就不用说了吧
      

  3.   


            static void Main(string[] args)
            {
                GetWeedays(DateTime.Parse("2009/11/20"));
            }        static void GetWeedays(DateTime dt)
            {
                DateTime begin = dt.AddDays(-(int)dt.DayOfWeek);
                DateTime end = begin.AddDays(7);
                for (dt = begin; dt < end; dt = dt.AddDays(1))
                    Console.WriteLine(dt.DayOfWeek + "," + dt.ToString("yyyy-MM-dd"));
            }
      

  4.   

                DateTime dt = DateTime.Now.AddDays(1 - Convert.ToInt32(DateTime.Now.DayOfWeek));
                string s = "";
                for (int i = 0; i < 7; i++)
                {
                    s += System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(dt.AddDays(i).DayOfWeek).ToString() +
                        ":" + dt.AddDays(i).ToString("yyyy-mm-dd") + " \n";
                }
                Console.WriteLine(s);/*
    ------输出结果------------
    星期一:2009-48-16
    星期二:2009-48-17
    星期三:2009-48-18
    星期四:2009-48-19
    星期五:2009-48-20
    星期六:2009-48-21
    星期日:2009-48-22*/
      

  5.   

    public static void GetPeriod(Period period, out DateTime beginDate, out DateTime endDate)
            {
                int year = DateTime.Today.Year;
                int month = DateTime.Today.Month;
                switch (period)
                {
                    case Period.Year: //年
                        beginDate = new DateTime(year, 1, 1);
                        endDate = new DateTime(year, 12, 31); 
                        break;
                    case Period.Month: //月
                        beginDate = new DateTime(year, month, 1);
                        endDate = beginDate.AddMonths(1).AddDays(-1);
                        break;
                    case Period.Week: //周
                        int week = (int)DateTime.Today.DayOfWeek;
                        if (week == 0) week = 7; //周日
                        beginDate = DateTime.Today.AddDays(-(week - 1));
                        endDate = beginDate.AddDays(6);
                        break;
                    default: 
                        beginDate = DateTime.Today;
                        endDate = DateTime.Today;
                        break;
                }
            }