函数Mjd2cal实现MJD格式到世界时格式的时间转换

void mjd2cal(double utc,int& year,int& mon ,int& day,int& hour,int& min,double& sec)
{
    if(utc>2400000.5){
        utc = utc - 2400000.5;
    }
    int i,j,k,l,idy;
    double sfrac;
 
    idy = (int)utc - 33282;
    i = (4000*(idy + 18204))/1461001;
    j = idy - (1461 * i)/ 4 + 18234;
    k = 80 * j/2447;
    l = k/11;
    year = 1900+l+i;
    mon = k+2-12*l;
    day = j-(2447*k)/80;
    sfrac = (double)(utc-int(utc))*24.0;
    hour = (int)sfrac;
    sfrac = (sfrac -(double)hour) *60.0;
    min=(int)sfrac;
    sec = (sfrac-(double)min)*60;
    return;
}
结果验证:
int year=0,mon=0,day=0,hour=0,min=0;
    double sec=0;
    double utc= 59539.5;
    mjd2cal(utc,year,mon,day,hour,min,sec);
    qDebug()<<year<<mon<<day<<hour<<min<<sec;

结果: 2021 11 21 12 0 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值