一.原由 最近需要編寫判斷兩個日期是否是屬于同一周的判斷。思路如下: 將每個日期的星期幾都歸到周一,比如2011-6-23是周四。那將日期減去3天。為2011-6-21正好為周一 。于是將兩個日期都按上述方式調整。得到的日期,看是否相等。如果相等,說明兩日期是在同一周。二。具體代碼如下:
int GetMonday(int Date)
  {
struct tm t;
time_t t_of_day;
t.tm_year=Date/10000-1900;
t.tm_mon=Date/100%100-1;
t.tm_mday=Date%100;
t.tm_hour=0;
t.tm_min=0;
t.tm_sec=0;
t.tm_isdst=0;
t_of_day=mktime(&t);

struct tm *pTmp =localtime(&t_of_day);

int day;
int week = pTmp->tm_wday;
if(week==0)
week = 7;
day = week - 1;
t_of_day -= day*24*3600;
return t_of_day;
}


int _tmain(int argc, _TCHAR* argv[])
  {
int aa = GetMonday(20110109);
int bb = GetMonday(20110110);
if(aa == bb)
 {
printf("為同一周內!\n");
return 0;
}
printf("不為同一周內!\n")

return 0;
}

|