Sha256: a30c897e50bfc6ac4bcd25b297e5715bf22451b611516476fc5165fa4041d1a4

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

module EphJcg
  class Argument
    def initialize(args)
      @arg = args.shift
    end

    #=========================================================================
    # 引数取得
    #
    # * コマンドライン引数を取得して日時の妥当性チェックを行う
    # * コマンドライン引数無指定なら、現在日時とする。
    #
    # @return: jst (UNIX time)
    #=========================================================================
    def get_jst
      unless @arg
        now = Time.now
        return Time.new(
          now.year, now.month, now.day, now.hour, now.min, now.sec
        ).to_f
      end
      (puts MSG_ERR_1; return 0) unless @arg =~ /^\d{8}$|^\d{14}$/
      year, month, day = @arg[ 0, 4].to_i, @arg[ 4, 2].to_i, @arg[ 6, 2].to_i
      hour, min,   sec = @arg[ 8, 2].to_i, @arg[10, 2].to_i, @arg[12, 2].to_i
      (puts MSG_ERR_2; return 0) unless Date.valid_date?(year, month, day)
      (puts MSG_ERR_2; return 0) if hour > 23 || min > 59 || sec > 59
      if sprintf("%04d%02d%02d%02d%02d%02d", year, month, day, hour, min, sec) \
         < "#{Y_MIN}0101090000" ||
         sprintf("%04d%02d%02d%02d%02d%02d", year, month, day, hour, min, sec) \
         > "#{Y_MAX + 1}0101085959"
        puts MSG_ERR_3
        return 0
      end
      return Time.new(year, month, day, hour, min, sec).to_f
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eph_jcg-0.1.1 lib/eph_jcg/argument.rb
eph_jcg-0.1.0 lib/eph_jcg/argument.rb