mk_calendar 0.2.6 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4f34775b3df3ec2ebba44012f345cc06906b2853
4
- data.tar.gz: 58ca4045e8e9f16f8fb3247ccfe9824c75ac6070
2
+ SHA256:
3
+ metadata.gz: 72ee21c3849fe4ac84aea68f419574959e27efc5a2fd52a5cb34ed712d15d51d
4
+ data.tar.gz: b356c4ca081e134b9e768f383ca6cc7c7a3d981ab7f4421087ff06da184ffb97
5
5
  SHA512:
6
- metadata.gz: f2d6f372168734f8abbcbf91e5db4d7ef6b31effef857d3239b9358229f3e75c2869a1f077a1bdb0ebb70ba608e8145ee20830cb16ca175395a848bbf8f9161e
7
- data.tar.gz: 575e3934529d89f5693a4d3e809e4827df76d84c7352f267b129bcaef19b430a07871889f8cee348df335599f80c080a29cf96a33f34054e7a0e8efa29d3cfe9
6
+ metadata.gz: 75e7b4c5ffb10884c894d120541e54ea6193d5f85edf1877c6e2d711f4bbf7b86cd5d1253576b8f41da2d9d74f2b8405001bb3fc5dbd24e3b214e63894eab891
7
+ data.tar.gz: f929806a326e445d0ac51840026ee7d56b0e4158052c470c243c5208d0ef9992de9d4190ba95ba5fb3487655c03ed82edad726143d55106cb129167e50af0774
data/README.md CHANGED
@@ -4,10 +4,12 @@
4
4
 
5
5
  This is the gem library which calculates calendar datas, including old-calendar.
6
6
 
7
+ **当リポジトリは更新停止。(2018年11月4日)**
8
+
7
9
  ### Computable items
8
10
 
9
11
  julian day(utc), julian day(jst), holiday, sekki_24, zassetsu,
10
- yobi, kanshi, sekku, lambda_sun, lambda_moon, moonage,
12
+ yobi, kanshi, sekku, lambda(sun), alpha(moon), moonage,
11
13
  old-calendar(year, month, day, leap flag), rokuyo
12
14
 
13
15
  ### Original Text
@@ -40,30 +42,26 @@ Or install it yourself as:
40
42
 
41
43
  ### Instantiation
42
44
 
43
- ``` ruby
44
- require 'mk_calendar'
45
-
46
- obj = MkCalendar.new
47
-
48
- # Otherwise
49
- obj = MkCalendar.new("20160608")
50
- ```
45
+ require 'mk_calendar'
46
+
47
+ obj = MkCalendar.new
48
+
49
+ # Otherwise
50
+ obj = MkCalendar.new("20160608")
51
51
 
52
52
  ### Calculation
53
53
 
54
- ``` ruby
55
- p o.year, o.month, o.day, o.jd, o.jd_jst
56
- p o.holiday
57
- p o.sekki_24
58
- p o.zassetsu
59
- p o.yobi
60
- p o.kanshi
61
- p o.sekku
62
- p o.lambda_sun
63
- p o.lambda_moon
64
- p o.moonage
65
- p o.oc # <= [year, leap_flag, month, day]
66
- ```
54
+ p o.year, o.month, o.day, o.jd, o.jd_jst
55
+ p o.holiday
56
+ p o.sekki_24
57
+ p o.zassetsu
58
+ p o.yobi
59
+ p o.kanshi
60
+ p o.sekku
61
+ p o.lambda
62
+ p o.alpha
63
+ p o.moonage
64
+ p o.oc # <= [year, leap_flag, month, day]
67
65
 
68
66
  ## Development
69
67
 
data/exe/mk_calendar CHANGED
@@ -17,16 +17,17 @@ exit unless o
17
17
  #p o.moonage
18
18
  #p o.oc
19
19
 
20
+ oc = o.oc
20
21
  str = sprintf("%04d-%02d-%02d", o.year, o.month, o.day)
21
22
  str << " #{o.yobi}曜日"
22
23
  str << " #{o.holiday}" unless o.holiday == ""
23
24
  str << " #{o.jd}UTC(#{o.jd_jst}JST) #{o.kanshi} "
24
- str << sprintf("%04d-%02d-%02d", o.oc[0], o.oc[2], o.oc[3])
25
- str << "(閏)" if o.oc[1] == 1
26
- str << " #{o.oc[4]}"
25
+ str << sprintf("%04d-%02d-%02d", oc[0], oc[2], oc[3])
26
+ str << "(閏)" if oc[1] == 1
27
+ str << " #{oc[4]}"
27
28
  str << " #{o.sekki_24}" unless o.sekki_24 == ""
28
29
  str << " #{o.zassetsu}" unless o.zassetsu == ""
29
30
  str << " #{o.sekku}" unless o.sekku == ""
30
- str << " #{o.lambda_sun} #{o.lambda_moon} #{o.moonage}"
31
+ str << " #{o.lambda} #{o.alpha} #{o.moonage}"
31
32
  puts str
32
33
 
@@ -57,15 +57,15 @@ module MkCalendar
57
57
  #=========================================================================
58
58
  # 視黄経(太陽)
59
59
  #=========================================================================
60
- def lambda_sun
61
- return compute_lambda_sun(@jd_jst)
60
+ def lambda
61
+ return compute_lambda(@jd_jst)
62
62
  end
63
63
 
64
64
  #=========================================================================
65
65
  # 視黄経(月)
66
66
  #=========================================================================
67
- def lambda_moon
68
- return compute_lambda_moon(@jd_jst)
67
+ def alpha
68
+ return compute_alpha(@jd_jst)
69
69
  end
70
70
 
71
71
  #=========================================================================
@@ -1,3 +1,5 @@
1
+ require 'mk_time'
2
+
1
3
  module MkCalendar
2
4
  module Compute
3
5
  module_function
@@ -131,8 +133,8 @@ module MkCalendar
131
133
  # @return: sekki_24 (二十四節気の文字列)
132
134
  #=========================================================================
133
135
  def compute_sekki_24(jd)
134
- lsun_today = compute_lambda_sun(jd)
135
- lsun_tomorrow = compute_lambda_sun(jd + 1)
136
+ lsun_today = compute_lambda(jd)
137
+ lsun_tomorrow = compute_lambda(jd + 1)
136
138
  lsun_today0 = 15 * (lsun_today / 15.0).truncate
137
139
  lsun_tomorrow0 = 15 * (lsun_tomorrow / 15.0).truncate
138
140
  return lsun_today0 == lsun_tomorrow0 ? "" : Const::SEKKI_24[lsun_tomorrow0 / 15]
@@ -148,17 +150,17 @@ module MkCalendar
148
150
  zassetsu = Array.new
149
151
 
150
152
  # 計算対象日の太陽の黄経
151
- lsun_today = compute_lambda_sun(jd)
153
+ lsun_today = compute_lambda(jd)
152
154
  # 計算対象日の翌日の太陽の黄経
153
- lsun_tomorrow = compute_lambda_sun(jd + 1)
155
+ lsun_tomorrow = compute_lambda(jd + 1)
154
156
  # 計算対象日の5日前の太陽の黄経(社日計算用)
155
- lsun_before_5 = compute_lambda_sun(jd - 5)
157
+ lsun_before_5 = compute_lambda(jd - 5)
156
158
  # 計算対象日の4日前の太陽の黄経(社日計算用)
157
- lsun_before_4 = compute_lambda_sun(jd - 4)
159
+ lsun_before_4 = compute_lambda(jd - 4)
158
160
  # 計算対象日の5日後の太陽の黄経(社日計算用)
159
- lsun_after_5 = compute_lambda_sun(jd + 5)
161
+ lsun_after_5 = compute_lambda(jd + 5)
160
162
  # 計算対象日の6日後の太陽の黄経(社日計算用)
161
- lsun_after_6 = compute_lambda_sun(jd + 6)
163
+ lsun_after_6 = compute_lambda(jd + 6)
162
164
  # 太陽の黄経の整数部分( 土用, 入梅, 半夏生 計算用 )
163
165
  lsun_today0 = lsun_today.truncate
164
166
  lsun_tomorrow0 = lsun_tomorrow.truncate
@@ -330,7 +332,7 @@ module MkCalendar
330
332
  # @param: jd (ユリウス日(JST))
331
333
  # @return: lambda
332
334
  #=========================================================================
333
- def compute_lambda_sun(jd)
335
+ def compute_lambda(jd)
334
336
  year, month, day, hour, min, sec = jd2ymd(jd - Const::JST_D)
335
337
  dt = compute_dt(year, month, day) # deltaT
336
338
  jy = (jd - Const::JST_D + dt / 86400.0 - 2451545.0) / 365.25 # Julian Year
@@ -363,7 +365,7 @@ module MkCalendar
363
365
  # @param: jd (ユリウス日(JST))
364
366
  # @return: lambda
365
367
  #=========================================================================
366
- def compute_lambda_moon(jd)
368
+ def compute_alpha(jd)
367
369
  year, month, day, hour, min, sec = jd2ymd(jd - Const::JST_D)
368
370
  dt = compute_dt(year, month, day) # deltaT
369
371
  jy = (jd - Const::JST_D + dt / 86400.0 - 2451545.0) / 365.25 # Julian Year
@@ -667,7 +669,7 @@ module MkCalendar
667
669
  tm2 -= Const::JST_D
668
670
 
669
671
  # 直前の二分二至の黄経 λsun0 を求める
670
- rm_sun = compute_lambda_sun(jd + 0.5)
672
+ rm_sun = compute_lambda(jd + 0.5)
671
673
  rm_sun0 = kbn * (rm_sun / kbn.to_f).truncate
672
674
 
673
675
  # 繰り返し計算によって直前の二分二至の時刻を計算する
@@ -676,7 +678,7 @@ module MkCalendar
676
678
  while (delta_t1 + delta_t2).abs > (1.0 / 86400.0)
677
679
  # λsun を計算
678
680
  t = tm1 + tm2 + Const::JST_D + 0.5
679
- rm_sun = compute_lambda_sun(t)
681
+ rm_sun = compute_lambda(t)
680
682
 
681
683
  # 黄経差 Δλ=λsun -λsun0
682
684
  delta_rm = rm_sun - rm_sun0
@@ -749,8 +751,8 @@ module MkCalendar
749
751
  while (delta_t1 + delta_t2).abs > (1.0 / 86400.0)
750
752
  # 太陽の黄経λsun ,月の黄経λmoon を計算
751
753
  t = tm1 + tm2 + Const::JST_D + 0.5
752
- rm_sun = compute_lambda_sun(t)
753
- rm_moon = compute_lambda_moon(t)
754
+ rm_sun = compute_lambda(t)
755
+ rm_moon = compute_alpha(t)
754
756
  # 月と太陽の黄経差Δλ
755
757
  # Δλ=λmoon-λsun
756
758
  delta_rm = rm_moon - rm_sun
@@ -808,160 +810,9 @@ module MkCalendar
808
810
  # @return: dt
809
811
  #=========================================================================
810
812
  def compute_dt(year, month, day)
811
- ym = sprintf("%04d-%02d", year, month)
812
- y = year + (month - 0.5) / 12
813
- case
814
- when year < -500
815
- t = (y - 1820) / 100.0
816
- dt = -20 + 32 * t ** 2
817
- when -500 <= year && year < 500
818
- t = y / 100.0
819
- dt = 10583.6
820
- (-1014.41 + \
821
- ( 33.78311 + \
822
- ( -5.952053 + \
823
- ( -0.1798452 + \
824
- ( 0.022174192 + \
825
- ( 0.0090316521) \
826
- * t) * t) * t) * t) * t) * t
827
- when 500 <= year && year < 1600
828
- t = (y - 1000) / 100.0
829
- dt = 1574.2 + \
830
- (-556.01 + \
831
- ( 71.23472 + \
832
- ( 0.319781 + \
833
- ( -0.8503463 + \
834
- ( -0.005050998 + \
835
- ( 0.0083572073) \
836
- * t) * t) * t) * t) * t) * t
837
- when 1600 <= year && year < 1700
838
- t = y - 1600
839
- dt = 120 + \
840
- ( -0.9808 + \
841
- ( -0.01532 + \
842
- ( 1.0 / 7129.0) \
843
- * t) * t) * t
844
- when 1700 <= year && year < 1800
845
- t = y - 1700
846
- dt = 8.83 + \
847
- ( 0.1603 + \
848
- (-0.0059285 + \
849
- ( 0.00013336 + \
850
- (-1.0 / 1174000.0) \
851
- * t) * t) * t) * t
852
- when 1800 <= year && year < 1860
853
- t = y - 1800
854
- dt = 13.72 + \
855
- (-0.332447 + \
856
- ( 0.0068612 + \
857
- ( 0.0041116 + \
858
- (-0.00037436 + \
859
- ( 0.0000121272 + \
860
- (-0.0000001699 + \
861
- ( 0.000000000875) \
862
- * t) * t) * t) * t) * t) * t) * t
863
- when 1860 <= year && year < 1900
864
- t = y - 1860
865
- dt = 7.62 + \
866
- ( 0.5737 + \
867
- (-0.251754 + \
868
- ( 0.01680668 + \
869
- (-0.0004473624 + \
870
- ( 1.0 / 233174.0) \
871
- * t) * t) * t) * t) * t
872
- when 1900 <= year && year < 1920
873
- t = y - 1900
874
- dt = -2.79 + \
875
- ( 1.494119 + \
876
- (-0.0598939 + \
877
- ( 0.0061966 + \
878
- (-0.000197 ) \
879
- * t) * t) * t) * t
880
- when 1920 <= year && year < 1941
881
- t = y - 1920
882
- dt = 21.20 + \
883
- ( 0.84493 + \
884
- (-0.076100 + \
885
- ( 0.0020936) \
886
- * t) * t) * t
887
- when 1941 <= year && year < 1961
888
- t = y - 1950
889
- dt = 29.07 + \
890
- ( 0.407 + \
891
- (-1 / 233.0 + \
892
- ( 1 / 2547.0) \
893
- * t) * t) * t
894
- when 1961 <= year && year < 1986
895
- case
896
- when ym < sprintf("%04d-%02d", 1972, 1)
897
- t = y - 1975
898
- dt = 45.45 + \
899
- ( 1.067 + \
900
- (-1 / 260.0 + \
901
- (-1 / 718.0) \
902
- * t) * t) * t
903
- # NICT Ver.
904
- when ym < sprintf("%04d-%02d", 1972, 7); dt = Const::TT_TAI + 10
905
- when ym < sprintf("%04d-%02d", 1973, 1); dt = Const::TT_TAI + 11
906
- when ym < sprintf("%04d-%02d", 1974, 1); dt = Const::TT_TAI + 12
907
- when ym < sprintf("%04d-%02d", 1975, 1); dt = Const::TT_TAI + 13
908
- when ym < sprintf("%04d-%02d", 1976, 1); dt = Const::TT_TAI + 14
909
- when ym < sprintf("%04d-%02d", 1977, 1); dt = Const::TT_TAI + 15
910
- when ym < sprintf("%04d-%02d", 1978, 1); dt = Const::TT_TAI + 16
911
- when ym < sprintf("%04d-%02d", 1979, 1); dt = Const::TT_TAI + 17
912
- when ym < sprintf("%04d-%02d", 1980, 1); dt = Const::TT_TAI + 18
913
- when ym < sprintf("%04d-%02d", 1981, 7); dt = Const::TT_TAI + 19
914
- when ym < sprintf("%04d-%02d", 1982, 7); dt = Const::TT_TAI + 20
915
- when ym < sprintf("%04d-%02d", 1983, 7); dt = Const::TT_TAI + 21
916
- when ym < sprintf("%04d-%02d", 1985, 7); dt = Const::TT_TAI + 22
917
- when ym < sprintf("%04d-%02d", 1988, 1); dt = Const::TT_TAI + 23
918
- end
919
- when 1986 <= year && year < 2005
920
- #t = y - 2000
921
- #dt = 63.86 + \
922
- # ( 0.3345 + \
923
- # (-0.060374 + \
924
- # ( 0.0017275 + \
925
- # ( 0.000651814 + \
926
- # ( 0.00002373599) \
927
- # * t) * t) * t) * t) * t
928
- # NICT Ver.
929
- case
930
- when ym < sprintf("%04d-%02d", 1988, 1); dt = Const::TT_TAI + 23
931
- when ym < sprintf("%04d-%02d", 1990, 1); dt = Const::TT_TAI + 24
932
- when ym < sprintf("%04d-%02d", 1991, 1); dt = Const::TT_TAI + 25
933
- when ym < sprintf("%04d-%02d", 1992, 7); dt = Const::TT_TAI + 26
934
- when ym < sprintf("%04d-%02d", 1993, 7); dt = Const::TT_TAI + 27
935
- when ym < sprintf("%04d-%02d", 1994, 7); dt = Const::TT_TAI + 28
936
- when ym < sprintf("%04d-%02d", 1996, 1); dt = Const::TT_TAI + 29
937
- when ym < sprintf("%04d-%02d", 1997, 7); dt = Const::TT_TAI + 30
938
- when ym < sprintf("%04d-%02d", 1999, 1); dt = Const::TT_TAI + 31
939
- when ym < sprintf("%04d-%02d", 2006, 1); dt = Const::TT_TAI + 32
940
- end
941
- when 2005 <= year && year < 2050
942
- case
943
- when ym < sprintf("%04d-%02d", 2006, 1); dt = Const::TT_TAI + 32
944
- when ym < sprintf("%04d-%02d", 2009, 1); dt = Const::TT_TAI + 33
945
- when ym < sprintf("%04d-%02d", 2012, 7); dt = Const::TT_TAI + 34
946
- when ym < sprintf("%04d-%02d", 2015, 7); dt = Const::TT_TAI + 35
947
- when ym < sprintf("%04d-%02d", 2017, 1); dt = Const::TT_TAI + 36
948
- when ym < sprintf("%04d-%02d", 2019, 1); dt = Const::TT_TAI + 37 # <= 第28回うるう秒実施までの暫定措置
949
- else
950
- t = y - 2000
951
- dt = 62.92 + \
952
- ( 0.32217 + \
953
- ( 0.005589) \
954
- * t) * t
955
- end
956
- when 2050 <= year && year <= 2150
957
- dt = -20 \
958
- + 32 * ((y - 1820) / 100.0) ** 2
959
- - 0.5628 * (2150 - y)
960
- when 2150 < year
961
- t = (y - 1820) / 100.0
962
- dt = -20 + 32 * t ** 2
963
- end
964
- return dt
813
+ ymd = sprintf("%04d%02d%02d", year, month, day)
814
+ tm = MkTime.new(ymd)
815
+ return tm.dt
965
816
  end
966
817
 
967
818
  #=========================================================================
@@ -1,3 +1,3 @@
1
1
  module MkCalendar
2
- VERSION = "0.2.6"
2
+ VERSION = "0.3.2"
3
3
  end
data/mk_calendar.gemspec CHANGED
@@ -27,7 +27,10 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_development_dependency "bundler", "~> 1.11"
31
- spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_dependency "mk_time"
31
+ #spec.add_development_dependency "bundler", "~> 1.11"
32
+ spec.add_development_dependency "bundler", ">= 2.2.10"
33
+ #spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency "rake", ">= 12.3.3"
32
35
  spec.add_development_dependency "rspec", "~> 3.0"
33
36
  end
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mk_calendar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - komasaru
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-20 00:00:00.000000000 Z
11
+ date: 2021-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mk_time
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - "~>"
31
+ - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: '1.11'
33
+ version: 2.2.10
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - "~>"
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: '1.11'
40
+ version: 2.2.10
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '10.0'
47
+ version: 12.3.3
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '10.0'
54
+ version: 12.3.3
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rspec
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +95,7 @@ homepage: https://github.com/komasaru/mk_calendar
81
95
  licenses:
82
96
  - MIT
83
97
  metadata: {}
84
- post_install_message:
98
+ post_install_message:
85
99
  rdoc_options: []
86
100
  require_paths:
87
101
  - lib
@@ -96,9 +110,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
110
  - !ruby/object:Gem::Version
97
111
  version: '0'
98
112
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.6.6
101
- signing_key:
113
+ rubygems_version: 3.2.9
114
+ signing_key:
102
115
  specification_version: 4
103
116
  summary: Calendar library including Japan's old-calendar.
104
117
  test_files: []