Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2018/04/27 (金)

なでしこ3で二十四節気取得するよ!

| 12:44 | なでしこ3で二十四節気取得するよ! - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - なでしこ3で二十四節気取得するよ! - 雪乃☆雫のなでしこ日和 なでしこ3で二十四節気取得するよ! - 雪乃☆雫のなでしこ日和 のブックマークコメント

 しばらく何もしないでいるうちに、なでしこが、v3.0.41にバージョンアップしてた!

 タイマー停止命令が追加されて、以前、ラーメンタイマーや15パズルのタイムトライアル作る際にぼやいていた、秒毎が止められない問題が解決したようです。

 ますますゲームが作り易くなりそうですね☆

 あと、楕描画が追加されたラシイ・・・

 この調子で描画系が充実していくと、かなり色々出来そう

 でもむしろまず、「塗る」が欲しいなあ・・・


 マイナビ連載26目は、アナログ時計でした。

 わたしにとっては、かなりタイムリーな記事でした。

 ちょっと、時計的なモンを作ろうとしてたんで。

 針を画像にしたいけど、画像を転させる命令が無いよなあと思ってたんですが、カメがあるじゃないか!

 カメさんは任意の画像に置換え可能なので、いつをカメ角度設定してやれば簡単にできそうだよ♪

 短針を分と連動させて動かすには?という問題が提出されていたので、取りあえず解答しておく~。

時角度=((時%12)÷12×360)+((分÷60)×30)

 さて、しかしは、なでしこ1にはあるけど、なでしこ3にはまだ無い、二十四節気の取得です。

 なでしこ1の二十四節気取得は、日付を引数にして、それが二十四節気の日付と合致していたら、それを返す的な感じ。

 むしろあると便利に違いないのは、この年の「立春」とかの日付を教えてくれるヤツ。

 取りあえず両方やってみた~。


 計算式とデータは、ここからもらってきました。

http://addinbox.sakura.ne.jp/sekki24_topic.htm

#データ
節気=["小寒","大寒","立春","雨水","啓蟄","春分","清明","穀雨","立夏","小満","芒種","夏至","小暑","大暑","立秋","処暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
データ=[{"D":6.3811,"A":0.242778},{"D":21.1046,"A":0.242765},{"D":4.8693,"A":0.242713},{"D":19.7062,"A":0.242627},{"D":6.3968,"A":0.242512},{"D":21.4471,"A":0.242377},{"D":5.6280,"A":0.242231},{"D":20.9375,"A":0.242083},{"D":6.3771,"A":0.241945},{"D":21.9300,"A":0.241825},{"D":6.5733,"A":0.241731},{"D":22.2747,"A":0.241669},{"D":8.0091,"A":0.241642},{"D":23.7317,"A":0.241654},{"D":8.4102,"A":0.241703},{"D":24.0125,"A":0.241786},{"D":8.5186,"A":0.241898},{"D":23.8896,"A":0.242032},{"D":9.1414,"A":0.242179},{"D":24.2487,"A":0.242328},{"D":8.2396,"A":0.242469},{"D":23.1189,"A":0.242592},{"D":7.9152,"A":0.242689},{"D":22.6587,"A":0.242752}]

「2018/04/20」の二十四節気取得して表示
●(日付の)二十四節気取得
  日付を「/」で区切る。
  年=それ[0]
  月=それ[1]
  日=それ[2]
  もし、月<3ならば、Y=年-1。
  違えばY=年。
  もし、日>15ならば、No=月*2-1。
  違えば、No=月*2-2
  日=データ[No]["D"]とデータ[No]["A"]でYの節気計算。
  もし、「{年}/{月}/{日}」=日付ならば、節気[No]で戻る。
  違えば戻るここまで。

今年の「穀雨」を二十四節気日付取得して表示
●(年のSを|Sで)二十四節気日付取得
  年を「/」で区切る。
  年=それ[0]
  No=節気からSを配列検索。
  もし、No<4ならばY=年-1。
  違えばY=年。
  月=((No/2)を切捨)+1。
  日=データ[No]["D"]とデータ[No]["A"]でYの節気計算。
  「{月}/{日}」で戻るここまで。

●(DとAでYの)節気計算
  INT(D+(A*(Y-1900))-INT((Y-1900)/4))
ここまで。

簡易エディタでお試し出来ます。

https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E7%B0%A1%E6%98%93%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF

うまくいってると思うんだけど・・・

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20180427