mk_time 0.1.2 → 0.2.0

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
2
  SHA1:
3
- metadata.gz: 1f4596224b3a5a1dda7f4da26df071e4b5991b3c
4
- data.tar.gz: 4341f0b3070b4b0e090ff7ff792eea7c84200fd4
3
+ metadata.gz: e53dc8d60c6fbf93a1a9f620efe200cae2166235
4
+ data.tar.gz: d45dd8be20c82a1ba37d18bc8747a425ce6cb3ab
5
5
  SHA512:
6
- metadata.gz: 5aa116e8eae04f745c4fd54a339abf562248428366d2ce261460bc53b3b0951bbe472dfd6ffd64a0984344700d5e883fd63a77a6ec82580352c15777ff509b06
7
- data.tar.gz: 6ec317c51aad7b091c45d86daed143717e141fd93351bed53f35a672c355b2491674c949180f5d2eadf5ff15379a3397d763abc6a17785eb5877abc479696201
6
+ metadata.gz: e2c5cc3dfd3b9c87ae6b4ef10ed48cd2a48ec631e4ecf1fd3ba06ce959b7acad9baabf54e0b3e2040c8e77bb752705f80d9b8d706d3380913a7f5ee2bf3525b1
7
+ data.tar.gz: 33ed2330807a2d4151cc2206a722c1a5823bd62be1322cf0aed7f9625e99f99c167b623822d737ac4c60030c8e8f616573f96c7d50444253e64a9b36565823ec
data/README.md CHANGED
@@ -26,15 +26,16 @@ Or install it yourself as:
26
26
 
27
27
  t = MkTime.new("20160726")
28
28
  t = MkTime.new("20160726123456")
29
- e = MkTime.new
29
+ t = MkTime.new("20160726123456123")
30
+ t = MkTime.new
30
31
 
31
- * You can set TDB formatted "YYYYMMDD" or "YYYYMMDDHHMMSS" as an argument.
32
+ * You can set TDB formatted "YYYYMMDD" or "YYYYMMDDHHMMSS" or "YYYYMMDDHHMMSSU..." as an argument. (`U`: milliseconds)
32
33
  * If you don't set an argument, this class considers the system time to have been set as an argument.
33
34
 
34
35
  ### Conversion
35
36
 
36
- puts " UTC: #{t.utc}"
37
- puts " JST: #{t.jst}"
37
+ puts " UTC: #{t.utc.instance_eval { '%s.%03d' % [strftime('%Y-%m-%d %H:%M:%S'), (usec / 1000.0).round] }}"
38
+ puts " JST: #{t.jst.instance_eval { '%s.%03d' % [strftime('%Y-%m-%d %H:%M:%S'), (usec / 1000.0).round] }}"
38
39
  puts " JD: #{t.jd} day"
39
40
  puts " T: #{t.t} century"
40
41
  puts " UTC-TAI: #{t.utc_tai} sec"
@@ -3,12 +3,12 @@
3
3
  require "mk_time"
4
4
 
5
5
  t = MkTime.new(ARGV[0])
6
- puts " UTC: #{t.utc}"
7
- puts " JST: #{t.jst}"
6
+ puts " UTC: #{t.utc.instance_eval { '%s.%03d' % [strftime('%Y-%m-%d %H:%M:%S'), (usec / 1000.0).round] }}"
7
+ puts " JST: #{t.jst.instance_eval { '%s.%03d' % [strftime('%Y-%m-%d %H:%M:%S'), (usec / 1000.0).round] }}"
8
8
  puts " JD: #{t.jd} day"
9
9
  puts " T: #{t.t} century"
10
10
  puts " UTC-TAI: #{t.utc_tai} sec"
11
- puts "LEAP_SEC: #{t.leap_sec} sec" # = tuc_tai
11
+ puts "LEAP_SEC: #{t.leap_sec} sec" # = utc_tai
12
12
  puts " DUT1: #{t.dut1} sec"
13
13
  puts " deltaT: #{t.dt} sec"
14
14
  puts " TAI: #{t.tai.instance_eval { '%s.%03d' % [strftime('%Y-%m-%d %H:%M:%S'), (usec / 1000.0).round] }}"
@@ -13,12 +13,16 @@ module MkTime
13
13
  # @return: utc (Time Object)
14
14
  #=========================================================================
15
15
  def get_utc
16
- (puts Const::MSG_ERR_1; return) unless @arg =~ /^\d{8}$|^\d{14}$/
16
+ (puts Const::MSG_ERR_1; return) unless @arg =~ /^\d{8}$|^\d{14,}$/
17
17
  year, month, day = @arg[ 0, 4].to_i, @arg[ 4, 2].to_i, @arg[ 6, 2].to_i
18
18
  hour, min, sec = @arg[ 8, 2].to_i, @arg[10, 2].to_i, @arg[12, 2].to_i
19
+ usec = @arg.split(//).size > 14 ? @arg[14..-1].to_i : 0
19
20
  (puts Const::MSG_ERR_2; return) unless Date.valid_date?(year, month, day)
20
- (puts Const::MSG_ERR_2; return) if hour > 23 || min > 59 || sec > 59
21
- return Time.new(year, month, day, hour, min, sec, "+00:00")
21
+ (puts Const::MSG_ERR_2; return) if hour > 23 || min > 59 || sec >= 60.0
22
+ d = usec.to_s.split(//).size
23
+ return Time.new(
24
+ year, month, day, hour, min, sec + Rational(usec, 10 ** d), "+00:00"
25
+ )
22
26
  end
23
27
  end
24
28
  end
@@ -12,9 +12,10 @@ module MkTime
12
12
  #=========================================================================
13
13
  def utc2jst(utc)
14
14
  jst = utc + Const::JST_OFFSET * 60 * 60
15
+ d = jst.usec.to_s.split(//).size
15
16
  return Time.new(
16
17
  jst.year, jst.month, jst.day,
17
- jst.hour, jst.min, jst.sec,
18
+ jst.hour, jst.min, jst.sec + Rational(jst.usec, 10 ** d),
18
19
  sprintf("+%02d:00", Const::JST_OFFSET)
19
20
  )
20
21
  rescue => e
@@ -1,6 +1,6 @@
1
1
  module MkTime
2
2
  module Const
3
- MSG_ERR_1 = "[ERROR] Format: YYYYMMDD or YYYYMMDDHHMMSS"
3
+ MSG_ERR_1 = "[ERROR] Format: YYYYMMDD or YYYYMMDDHHMMSS or YYYYMMDDHHMMSSU..."
4
4
  MSG_ERR_2 = "[ERROR] Invalid date-time!"
5
5
  JST_OFFSET = 9 # JST offset from UTC
6
6
  J2000 = 2451545 # Julian Day of 2000-01-01 12:00:00
@@ -1,3 +1,3 @@
1
1
  module MkTime
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mk_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - komasaru
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-29 00:00:00.000000000 Z
11
+ date: 2016-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler