日期:2014-05-17  浏览次数:21656 次

如何计算当前日期是本月的第几周?
不要复制别人的!

自己有实际应用的代码!

谢谢!


------解决方案--------------------
C# code
  static void Main(string[] args)
        {         //如何计算当前日期是本月的第几周?

            //得到当前为这个月的第几天
            int day = Convert.ToInt32(DateTime.Now.Day);
            Console.WriteLine("当前是这个月的第" + day + "天");
            //得到是当前年的哪一天
            int yearday = Convert.ToInt32(DateTime.Now.DayOfYear);
            Console.WriteLine(yearday);
            //得到当前年
            int year = Convert.ToInt32(DateTime.Now.Year);
            Console.WriteLine(year);
            //得到月份
            int month = Convert.ToInt32(DateTime.Now.Month);
            int totalDays = 0;
            bool inRn;//是否为闰年
            if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0)
            {
                inRn = true;
            }
            else
            {
                inRn = false;//平年
            }
            for (int i = 1900; i < year; i++)
            {
                /* 判断闰年或平年,并进行天数累加 */
                if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
                { // 判断是否为闰年
                    totalDays = totalDays + 366; // 闰年366天
                }
                else
                {
                    totalDays = totalDays + 365; // 平年365天
                }
            }
            Console.WriteLine(totalDays);
            int days = 0;
            int beforeDays = 0;
            for (int i = 1; i <= month; i++)
            {
                switch (i)
                {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12:
                        days = 31;
                        break;
                    case 2:
                        if (inRn)
                        {
                            days = 29;
                        }
                        else
                        {
                            days = 28;
                        }
                        break;
                    default:
                        days = 30;
                        break;
                }
                if (i < month)
                {
                    beforeDays = beforeDays + days;
                }

            }
            Console.WriteLine("此月份之前的天数" + beforeDays);
            totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数
            int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0
            int temp = 1 + totalDays % 7; // 从1900年1月1日推算
            if (temp == 7)
            { // 求当月第一天
                firstDayOfMonth = 0; // 周日
            }
            else
            {
                firstDayOfMonth = temp;
            }
            Console.WriteLine("该月第一天是星期" + firstDayOfMonth);

        }
//还真没想到这么麻烦

------解决方案--------------------
C# code
public   static   int   GetWeekOfNow()   
  {   
    
  //今天是这个月的的几天   
  int   days   =   DateTime.Today.Day;   
  int   weeks   =   0;   
  for(int   i=1;i<=days;i++)   
  {   
  //返回日期   
  DateTime   dayDate   =   new   DateTime(DateTime.Now.Year,DateTime.Now.Month,i);   
  //如果是星期一就算一周   
  if(Convert.ToInt32(dayDate.DayOfWeek)   ==   1)   
  {   
  weeks++;   
  }   
  }   
  if(weeks   ==   0)   
  {   
  weeks++;   
  }   
  return   weeks;   
  }