0

getToD 内で getJD() を呼び出してパラメーターをそのまま保持する方法を考えていました (または一時的にメインの変数としてパラメーターを設定し、変数をメソッドに呼び出します)。パラメーターは、メイン メソッドの後半でスキャナー クラスを使用して入力されます。import static java.lang.Math.*;

public class jdMethods
{
    public static double getJD(double y, double m, double d){
        if (m<=2.0){
            y--;
            m += 12.0;
        }
        double a=floor(y/100.0);
        return (365.25*(y+4716.0))+(30.6001*(m+1))+d+(2.0-a+floor(a/4.0))-1524.5;
    }

    public static double getToD(int h, int m, int s)
    {
        double a = getJD(a, a, a) + ((h-12)/24) + (m/1440) + (s/86400);
        return a;
    }
}

明確にするために編集されています。

4

2 に答える 2

1

何をしようとしているのか完全にはわかりませんが、最初のgetJD()の結果を保存し、その結果をgetToD()内で使用したいだけだと思ったので、プライベート_jdを作成してセッターを作成しましたそしてそれのためのゲッター。

import static java.lang.Math.*;

public class jdMethods
{

    private double _jd;
    public double getJD(){
        return _jd;
    }

    public void setJD(double y, double m, double d){
        if (m<=2.0){
            y--;
            m += 12.0;
        }
        double a=floor(y/100.0);
        _jd = (365.25*(y+4716.0))+(30.6001*(m+1))+d+(2.0-a+floor(a/4.0))-1524.5;
    }

    public double getToD(int h, int m, int s)
    {
        double a = getJD() + ((h-12)/24) + (m/1440) + (s/86400);
        return a;
    }
}

だからここにあなたがそれを呼ぶ方法があります:

jdMethods testRun = new jdMethods();
testRun.setJD(1,2,3);
System.out.println(testRun.getToD(3, 2, 1));
于 2012-11-05T16:43:34.380 に答える
1

doubleandを使用しているため、これらのパラメーターはすべてそのままです。これらは sintではないObjectため、関数への参照が関数に渡される s とは異なり、関数に渡されると値がコピーされObjectます。

あなたのコードについて、未定義の変数aはコンパイルできません:

double a = getJD( a、a、a ) + ((h-12)/24) + (m/1440) + (s/86400);

私はあなたがそこで何をしようとしているのか分かりません.fromメソッドはintoと同じではないことaを覚えておいてください.getJDagetToD

于 2012-11-05T16:40:42.717 に答える