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

这段代码主要处理美国东部时间的夏令时和冬令时转换问题。通过获取当前时间并调整时区,确定是否处于夏令时,并计算出对应的日期和时间值。
摘要由CSDN通过智能技术生成

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

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 -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字正腔圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值