在计算GPS卫星位置时其中有一步:"tk = t - toe”, 这其中的t怎么求得啊?

在计算GPS卫星位置时其中有一步:"tk = t - toe”, 这其中的t怎么求得啊?

你先写一个代码计算从t这一天到1980年1月1日经过了多少天,然后再减去周数(WN)*7;然后*24*3600s,再加上小时数*3600s,再加上分钟数跟秒数就差不多了吧

function gpsTime = getGPStime(year,month,day,hour,minute,second)
    %   getGPStime函数用于求GPS时
    %   输入参数为年、月、日、小时、分钟、秒
    %   输出结果为GPS时,和GPS周
    %   定义每个月份的天数
    dinmith = [31 29 31 30 31 30 31 31 30 31 30 31];  
    if year > 80
        year = year +1900;
    else if year < 80
            year =year + 2000;
        end
    end
    
    if year < 1981 || month <1 || month > 12 ||day<1 ||day>31
        weekno = 0;
    end
    
    if month == 1
        dayofy = day;
    else
        dayofy = 0;
        for m = 1:month -1
            dayofy = dinmith(m)+dayofy;
            if m == 2
                if mod(year,4) == 0 && mod(year,100)~=0 && mod(year,400) == 0
                dayofy = dayofy + 1;
                end   
            end
        end
            dayofy = dayofy + day;
    end
    ttlday = 360;
  
    for yr = 1981:year - 1
        ttlday = ttlday + 365;
        if mod(yr,4)==0 && mod(yr,100)~=0 || mod(yr,400)==0
            ttlday = ttlday + 1;
        end
    end
    ttlday = ttlday + dayofy;
    weekno = ttlday / 7;
    %   GPS周数应取整
    weekno = floor(weekno);
    %   GPS周内天数
    dayofw = ttlday -7 * weekno;  
    gpsTime = hour*3600+minute*60+second+dayofw*86400;
end