日出・日没時刻を計算するJavaライブラリ「Sunrise/SunsetLib」

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

 本稿では Java で日出・日没の時刻を計算してくれるOSSライブラリ「Sunrise/SunsetLib」について解説します。

Sunrise/SunsetLib とは

 Sunrise/SunsetLib は、GitHub 上で Mike Reedell 氏によって開発されているオープンソースライブラリです。 緯度・経度を元に、日出・日没時刻を計算するためのライブラリです。 プロジェクトページはこちらです。 またRuby版も開発されています。

導入

 Sunrise/SunsetLib は、リリースページから jar ファイルをダウンロードするか、Maven や Gradle を利用している場合は、次のように依存関係を記述することで利用できます。

Apache Maven

<dependency>
  <groupId>com.luckycatlabs</groupId>
  <artifactId>SunriseSunsetCalculator</artifactId>
  <version>1.2</version>
</dependency>

Gradle

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.luckycatlabs:SunriseSunsetCalculator:1.2'
}

日出・日没時刻を取得する

 それでは、日出・日没時刻を取得してみましょう。 取得したい座標(緯度・経度)・タイムゾーン・日付を準備し、SunriseSunsetCalculatorクラスを利用して日出・日没時刻を文字列で取得します。 次の例では、東京駅の日出・日没時刻を日本時間で取得しています。

import java.util.Calendar;
import java.util.TimeZone;

import com.luckycatlabs.sunrisesunset.SunriseSunsetCalculator;
import com.luckycatlabs.sunrisesunset.dto.Location;

public class SunriseSunsetMain {
    public static void main(String args[]) {
        // 計算する場所・タイムゾーン・日付を準備する
        Location location = new Location(35.681298d,139.7662469d);
        TimeZone timeZone = TimeZone.getTimeZone("Asia/Tokyo");
        Calendar calendar = Calendar.getInstance(timeZone);

        // 日出・日没時刻を取得する
        SunriseSunsetCalculator calculator = new SunriseSunsetCalculator(location, timeZone);
        String sunriseTime = calculator.getOfficialSunriseForDate(calendar);
        String sunsetTime = calculator.getOfficialSunsetForDate(calendar);
        System.out.println(sunriseTime);
        System.out.println(sunsetTime);
    }
}

おわりに

 本稿では日出・日没時刻を計算するオープンソース Java ライブラリ「SunriseSunsetLib」について解説しました。

Java環境構築へ戻る

Javaのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca