JavaScript äquivalent Algorithmus konvertieren YYYYMMDD zu MJD bearbeiten Julan Tag konvertieren Skript hier bash ist der Javascript-Codewie YYYYMMDD zu MJD-Format konvertieren bash mit
function YMDtoMJD (year, month, day)
{
var year;
var monthi
var day;
var yr = Math.floor (year);
var mn = Math.floor (month);
var day = Math.floor (day);
var hr = 0.0; // Hours are not valid
var L;
var julian;
var mjd;
// In leap years, -1 for Jan, Feb, else 0
L = Math.ceil ((mn - 14)/12);
var p1 = day - 32075 + Math.floor (1461 * (yr + 4800 + L)/4);
var p2 = Math.floor (367 * (mn - 2 - L * 12)/12);
var p3 = 3 * Math.floor (Math.floor ((yr + 4900 + L)/100)/4);
julian = p1 + p2 - p3;
julian = julian + (hr/24.0) - 0.5;
mjd = julian - 2400000.5;
return (mjd);
}
ich in Bash-Skript versucht, aber steckte in Mitte
#!/bin/bash
#clear
mn=12
Yr=2014
Dd=23
L=`ceil $((($mn-14)/12))`
p1=$(($Dd-32075+`floor $(((1461*(($Yr+4800+$L)/4))))`))
Bitte helfen sie mir, es zu konvertieren unter bash ist mein Boden und ceil Funktion i
floor_val=
function floor() {
float_in=$1
floor_val=${float_in/.*}
}
float_val=$1
floor $float_val
echo $floor_val
ceil_val=
function ceiling() {
float_in=$1
ceil_val=${float_in/.*}
ceil_val=$((ceil_val+1))
}
float_val=$1
ceiling $float_val
echo $ceil_val
bin mit
Es gibt keinen 'floor' Befehl in' bash'. – Barmar
Aber Sie brauchen es nicht, weil 'bash' Arithmetik Integer-only ist. Division gibt immer den Boden zurück. – Barmar