Skip to content

Categories:

二十四節気WEBサービス

追記:2012-01-08現在、サービス停止中です。Herokuで近日中に再開予定
追記:2012-01-10 herokuで再開

二十四節気WEBサービスの概要

二十四節気とは

1太陽年を日数(平気法)あるいは太陽の黄道上の視位置(定気法)によって24等分し、その分割点を含む日に季節を表す名称を付したもの。
Wikipedia:二十四節気の項より引用

 

二十四節気WEBサービスは『国立天文台 天文情報センター 暦計算室』の情報をもとに、与えられた年月における二十四節気の日付を求めることができます。

利用上の注意などはWEBサービス総合案内をご覧ください。
 
 

二十四節気WEBサービスのAPI

本APIはURIをHTTPでGETすることで利用可能、データはXML形式、およびJSON形式で取得できます。
 

仕様

二十四節気WEBサービスAPIのURI
XML版:http://www.azukiwasher.com/solar/terms/search.xml
JSON版:http://www.azukiwasher.com/solar/terms/search.json※修正中

XML版:http://solar-terms.higanworks.jp/terms/search.xml
JSON版:http://solar-terms.higanworks.jp/terms/search.json※修正中

    クエリパラメータ一覧

  • month:問い合わせ対象の月を入力します(1-12)
  • year:問い合わせ対象の年を西暦で入力します(1945-2090)
  • ※省略すると現在の年月が入ります。

2009年の8月に存在した二十四節気とその日付が取得したい場合はこのようにリクエストします。

http://solar-terms.higanworks.jp/terms/search.xml?month=8&year=2009

 
 

レスポンスのサンプル

日本語、英語に対応しています。

<?xml version="1.0" encoding="UTF-8"?>
<terms>
  <term id="19">
    <year>2010</year>
    <month>10</month>
    <day>8</day>
    <name_jp>寒露</name_jp>
    <name_en>cold dew</name_en>
  </term>
  <term id="20">
    <year>2010</year>
    <month>10</month>
    <day>23</day>
    <name_jp>霜降</name_jp>
    <name_en>frost descent</name_en>
  </term>
</terms>

上記はパラメータ指定なしでAPIから情報を取得した例、今月(2010-10)には寒露(cold dew)と霜降(frost descent)があり、それぞれの日付を返しています。
 

二十四節気WEBサービスのサンプルクライアント

今日の日付から当月中の節気一覧を取得し配列に格納するクライアントです。

Ruby

#!/usr/bin/env ruby

# -*- coding: utf-8 -*-

require 'rubygems'
require 'rest_client'
require 'rexml/document'
require 'date'
require 'pp'

def search(month, year)
 terms = Array.new
 doc_root = REXML::Document.new(
   RestClient.get(
     "http://solar-terms.higanworks.jp/terms/search.xml?month=#{month}&year=#{year}"
   )
 ).root
 doc_root.elements.each('//term') do |t|
   terms.push([
     t.elements['year'].text,
     t.elements['month'].text,
     t.elements['day'].text,
     t.elements['name_jp'].text,
     t.elements['name_en'].text
   ])
 end
 return terms
end

begin
 today = Date.today #本日の日付を渡すと、当月の節気が返ってくる。
 terms = search(today.month, today.year) # 指定範囲:month {1..12}, year {2000..2050}

 terms.each{|term|
   p term
 }
end

実行結果。

# ruby ./24.rb
["2010", "10", "8", "寒露", "cold dew"]
["2010", "10", "23", "霜降", "frost descent"]

 

二十四節気WEBサービスAPIを利用したサービス

こちらは停止中

なるほど二十四節気じゃねーの

URI:http://azukiwasher.com/t24st/users

Twitterと連携し、毎日0:02に二十四節気に関するつぶやきを行うアプリ。
その他Twitter関連の仕様については某4時じゃねーのと同じです。

登録したユーザのOAuth認証を使って、下記のポリシーに沿ってTweetします。

  • 二十四節気の当日は登録ユーザ全員が「なるほど○○(節気)じゃねーの」とTweet
  • その他の日は登録ユーザのうちランダムで数割が節気何日目と次の節気までの日数をTweet
  • http://www.sawanoboly.net/wp/2010/10/10/111.html 二十四節気WEBサービスAPIを公開しました | SawanoBlog 2G

    [...] 二十四節気WEBサービス [...]