AppleWatch 和時計の24節気改良

二十四節気とは

  • 国立国会図書館HP」より引用
    • 二十四節気(にじゅうしせっき)は、今でも立春春分夏至など、季節を表す言葉として用いられています。1年を春夏秋冬の4つの季節に分け、さらにそれぞれを6つに分けたもので、「節(せつ)または節気(せっき)」と「気(中(ちゅう)または中気(ちゅうき)とも呼ばれる)」が交互にあります。太陰太陽暦(旧暦)の閏月を設ける基準となっており、中気のない月を閏月としていました。二十四節気は、その年によって1日程度前後することがあります。

 

今まで

  • 2024年2月26日 二十四節気を追加
    • //======================================================================

      // 今日が24節気かどうか調べる

      // 引数  .... 計算対象となる年月日 year month day

      // 戻り値 .... 24節気の名称

      //======================================================================

      func get24Sekki_bak(year:Double, month:Double,day:Double)-> (String ) {

          let sekkiName = ["春分","清明","穀雨","立夏","小満","芒種","夏至","小暑","大暑","立秋","処暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至","小寒","大寒","立春","雨水","啓蟄"] // 24節気の定義

          var JD: Double

          var JD1: Double

          var JD2: Double

          var t: Double

          var today: Int

          //今日の太陽の黄経

          JD = ymd2jd(yea: year, mont: month, ysDay: day)    //ユリウス日の計算

          JD1 = floor(JD)    //時刻引数を分解する

          JD2 = JD - JD1

          JD2 -= 9.0 / 24.0

          t = (JD2 + 0.5) / 36525.0

          t = t + (JD1 - 2451545.0) / 36525.0

          today = Int( LONGITUDE_SUN(t:t))

          today    = Int( 15.0 * floor( Double( today ) / 15.0 ))

          return( sekkiName[ today/15 ] )

      }

    • 節気が変わるまで同じ節気を表示

 

改良

  • 二十四節気の日は、節気名の頭に”*”を追加する。その後日からは、節気名のみとする
    • //======================================================================

      // 今日が24節気かどうか調べる

      // 引数  .... 計算対象となる年月日 year month day

      // 戻り値 .... 24節気の名称

      //======================================================================

      func get24Sekki(year:Double, month:Double,day:Double)-> (String ) {

          let sekkiName = ["春分","清明","穀雨","立夏","小満","芒種","夏至","小暑","大暑","立秋","処暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至","小寒","大寒","立春","雨水","啓蟄"] // 24節気の定義

          var JD: Double

          var JD1: Double

          var JD2: Double

          var t: Double

          var today: Int

          var tomorrow: Int

          //今日の太陽の黄経

          JD = ymd2jd(yea: year, mont: month, ysDay: day)    //ユリウス日の計算

          JD1 = floor(JD)    //時刻引数を分解する

          JD2 = JD - JD1

          JD2 -= 9.0 / 24.0

          t = (JD2 + 0.5) / 36525.0

          t = t + (JD1 - 2451545.0) / 36525.0

          today = Int( LONGITUDE_SUN(t:t))

          //明日の太陽の黄経

          JD += 1

          JD1 = floor(JD)    //時刻引数を分解する

          JD2 = JD - JD1

          JD2 -= 9.0 / 24.0

          t = (JD2 + 0.5) / 36525.0

          t = t + (JD1 - 2451545.0) / 36525.0

          tomorrow = Int( LONGITUDE_SUN(t: t))

       

          today    = Int( 15.0 * floor( Double( today ) / 15.0 ))

          tomorrow = Int( 15.0 * floor( Double( tomorrow) / 15.0))

          if today != tomorrow {

              return( "*" + sekkiName[ today/15 ] )

          }else{

              return( sekkiName[ today/15 ] )

          }

      }

       

ここまで読んでいただき、ありがとうございます

 

 

プライバシーポリシー |ページトップへ

`