1

私は数年前に C++ 用のメソッドを作成し、現在それを Java に採用しようとしています。メソッドの最初の行を編集するのと同じくらい簡単だと思っていましたが、間違っていました。

コードは次のとおりです。更新しました:

import static java.lang.Math.*;

public static double getJD(double y,double m,double d){
    if (m<=2.0){
        y-=1.0;
        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;
}

編集:Eclipseは、以下にリストされているコンパイラエラーでまだおかしくなっています。

説明 リソース パス ロケーション タイプ トークン "-" の構文エラー、このトークンを削除 jd.java /Elapsed time calc/src 行 7 Java 問題 トークン ";" の構文エラー、? 予想される jd.java /Elapsed time calc/src line 3 Java Problem トークン ")" の構文エラー、このトークンの後に予想される jd.java /Elapsed time calc/src line 2 Java Problem トークン "double" の構文エラー、{ expected jd.java /Elapsed time calc/src line 1 Java Problem トークン "double" の構文エラー、@ expected jd.java /Elapsed time calc/src line 1 Java Problem トークン "double" の構文エラー、このトークン jd.java を削除/Elapsed time calc/src line 1 Java 問題 トークン "double" の構文エラー、無効 ( jd.

4

2 に答える 2

5

java.lang.Math の静的インポートがない限り、"floor" を "Math.floor" に置き換える必要があります。

静的インポートを使用すると、名前を修飾せずに別のクラスの静的メンバーを参照できます。

import static java.lang.Math.*;

于 2012-11-05T15:11:07.447 に答える
3

Java のすべては、クラス内にある必要があります。これは、コードを含む完全なワーキング クラスです。パッケージ宣言を追加することもできます。

import static java.lang.Math.*;

public class Utility
{
    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;
    }
}
于 2012-11-05T15:47:11.487 に答える