time_t GetWeekFestival(int y,int fMonth, int fWeek,int fWeekDay)
{
    struct tm stFirstDay;
    struct tm stNewDate;
    struct tm *FirstDay=&stFirstDay;
    struct tm *NewDate=&stNewDate;
    time_t tmptime;
    //求出本月的第一天
    FirstDay->tm_year = y;
    FirstDay->tm_mon = fMonth;
    FirstDay->tm_mday =1;
    tmptime=mktime(FirstDay);
    //求出第几个星期几
    NewDate->tm_year=y;
    NewDate->tm_mon = fMonth;
    NewDate->tm_mday=1 + ((7 - FirstDay->tm_wday + fWeekDay) % 7) + (fWeek-1) * 7;
    return(mktime(NewDate));
}   此代码是非MFC程序,所以用不了CTime类。怎么办好?谢谢了!

解决方案 »

  1.   

    time_t
    GetWeekFestival(int y, int fMonth, int fWeek, int fWeekDay)
    {
       struct tm calendar;   memset(&calendar, 0, sizeof(calendar));
       calendar.tm_year = y - 1900;
       calendar.tm_mon = fMonth - 1;
       calendar.tm_mday = 1;
       if (mktime(&calendar) == (time_t)-1)
       {
        return (time_t)-1;
       }
       calendar.tm_mday += (7 - calendar.tm_wday + fWeekDay) % 7 + (fWeek - 1) * 7;
       return mktime(&calendar);
    }