LoginSignup
4
1

More than 3 years have passed since last update.

釣りにおけるマズメ判定処理

Posted at

経緯

海関係のプロダクトを作る際に普段は、フレームワークを使っているが、便利さにあやかり過ぎてアルゴリズム考える力や基礎力が確実に衰えている感じがしたので、自己研鑽と振り返りも兼ねて、簡単なものを作り始めたのがきっかけ。

題材

魚が釣れる時間帯を通知する簡単なプログラム

・現在時刻を確認して、釣れる時間帯かを判定

・ステータスは以下
 6:00~8:00→朝マズメ(植物プランクトンが光合成のために水面に浮上するため)
 8:00~17:00→日中(基本活性はまばら、釣れる場合もあり)
 17:00~19:00→夕マズメ(大型魚が小魚を求めて活性化する)
 18:00~6:00→夜間(魚達が動き出す。大型魚も狙える)

サンプル

mazumeAlert.java
import java.util.*;
import java.text.SimpleDateFormat;

class mazumeAlert {

    public static void main(String[] args){

        String display_result = "";     
        Calendar cTime = Calendar.getInstance();

        SimpleDateFormat sdf = new SimpleDateFormat("H");   
        int current_hour = Integer.parseInt(sdf.format(cTime.getTime()));

        if(current_hour >= 6 && current_hour < 8){
            display_result = OceanStatus.MORNING.getStatus();
        }

        if(current_hour >= 8 && current_hour < 17){
            display_result = OceanStatus.NOON.getStatus();
        }

        if(current_hour >= 17 && current_hour < 19){
            display_result = OceanStatus.SUNSET.getStatus();
        }

        if((current_hour >= 19 && current_hour <= 23) 
        || (current_hour >= 0 && current_hour < 6)){
            display_result = OceanStatus.NIGHT.getStatus();
        }

        System.out.println(display_result);
    }

    enum OceanStatus {
        MORNING("朝マズメ:釣れる時間帯"),
        NOON("日中:まずまずの時間帯"),
        SUNSET("夕マズメ:釣れる時間帯"),
        NIGHT("オールナイト釣れる");

        private final String status;

        private OceanStatus(String status) {
        this.status = status;
        }

        public String getStatus() {
            return this.status;
        }
    }
}

あとがき

振り返りがてらの練習なので、大したものではないですが、
コツコツ使えるロジックを日々継続して蓄積できたらと思っています。

4
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1