⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sunmoonposition.java

📁 这是一个手机上的J2ME程序
💻 JAVA
字号:
// J2ME Compass
// Copyright (C) 2007 Dana Peters
// http://www.qcontinuum.org/compass

package org.qcontinuum.compass;

import org.qcontinuum.astro.*;
import henson.midp.Float;
import java.util.*;

public class SunMoonPosition {

    private UtcDate mUtcDate;
    private HorizontalPosition mSunPosition, mMoonPosition;
    private Float mMoonPhase;
    private EarthHeading mDestinationHeading;

    public SunMoonPosition(Date localDate) {
        this(localDate, Compass.getPreferences().getLocation());
    }
    
    public SunMoonPosition(Date localDate, Location location) {
        Date gmtDate = location.getGmt(localDate);
        mUtcDate = new UtcDate(gmtDate);
        EarthPosition earthPosition = location.getEarthPosition();
        Float mjd = mUtcDate.getMJD();

        EclipticPosition sunEcliptic = Astrometric.sunPosition(mjd);
        EquitorialPosition sunEquitorial = sunEcliptic.toEquitorialPosition();
        mSunPosition = sunEquitorial.toHorizontalPosition(earthPosition, mjd);

        EclipticPosition moonEcliptic = Astrometric.moonPosition(mjd);
        EquitorialPosition moonEquitorial = moonEcliptic.toEquitorialPosition();
        mMoonPosition = moonEquitorial.toHorizontalPosition(earthPosition, mjd);

        Float E = sunEcliptic.getLongitude().Sub(moonEcliptic.getLongitude());
        // moonPhase = (1 + cos(pi - E)) / 2;
        mMoonPhase = Float.cos(Float.PI.Sub(E)).Add(new Float(1)).Div(new Float(2));

        Preferences preferences = Compass.getPreferences();
        if (preferences.getDestination() == null)
            mDestinationHeading = null;
        else
            mDestinationHeading = earthPosition.toEarthHeading(preferences.getDestination().getEarthPosition());
    }

    public UtcDate getUtcDate() {
        return mUtcDate;
    }

    public HorizontalPosition getSunPosition() {
        return mSunPosition;
    }
    
    public HorizontalPosition getMoonPosition() {
        return mMoonPosition;
    }
    
    public Float getMoonPhase() {
        return mMoonPhase;
    }
    
    public EarthHeading getDestinationHeading() {
        return mDestinationHeading;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -