mk_calendar 0.2.6 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []