日期:2014-05-17 浏览次数:21708 次
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); } //还真没想到这么麻烦
------解决方案--------------------
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; }