//include <atltime.h>
int GetWeekOfYear(CTime &date)
{
CTime firstDay(date.GetYear(), 1, 1, 0, 0, 0);
int spanDays = (date - firstDay).GetDays();
int firstDayWeekday = firstDay.GetDayOfWeek();
//GetDayOfWeek认为周天为星期的第一天,即值为1表示周天
//习惯上以周一为星期的第一天
//所以这里做一下转换
--firstDayWeekday;
if (0 == firstDayWeekday) firstDayWeekday = 7;
//计算第一周已经过去了几天
//如周一已经过去了0天,周二已经过去了1天,以此类推
int extraDays = firstDayWeekday - 1;
return (extraDays + spanDays) / 7 + 1;
}