在搞美股,涉及美东不同令时下的时间计算【不太习惯,思考了很久才写出来,惭愧】

//关键是找到指定年月的某个星期天是几号

int GetMonthSunday(int index, int date){
    if(index <1 || index>4){
        return -1;
    }
    struct tm tmp_tm ;
    time_t now = time(NULL) ;
    struct tm *local = localtime_r(&now, &tmp_tm) ;
    local->tm_year = date/10000 - 1900 ;
    local->tm_mon  = (date/100)%100 - 1 ;
    local->tm_mday = 1;
    time_t t = mktime( local ) ;
    local = localtime_r(&t, &tmp_tm) ;
    if(local->tm_wday==0){
        return date + (index-1)*7;
    }else{
        return date + (7-local->tm_wday) + (index-1)*7;
    }
}

void GetNowDateTimeUS(int& dateValue, int& timeValue)
{
    //美国的令制是从3月的第二个星期日,到11月的第一个星期日,使用夏令时间;其他时间冬令
    time_t now = time(NULL) ;
    time_t us12 = now - 12*3600;//默认夏令取值
    time_t us13 = now - 13*3600;
    struct tm tmp_tm ;
    struct tm *t =

你可能感兴趣的:(C++)