Class: Zip::DOSTime
Overview
:nodoc:all
Defined Under Namespace
Modules: JRubyCMP
Class Method Summary collapse
-
.from_time(time) ⇒ Object
Create a DOSTime instance from a vanilla Time instance.
- .parse_binary_dos_format(bin_dos_date, bin_dos_time) ⇒ Object
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Dos time is only stored with two seconds accuracy.
- #dos_equals(other) ⇒ Object
- #to_binary_dos_date ⇒ Object
-
#to_binary_dos_time ⇒ Object
Register DX, the Date: Bits 0-4 day (1-31) bits 5-8 month (1-12) bits 9-15 year (four digit year minus 1980).
Methods included from JRubyCMP
Class Method Details
.from_time(time) ⇒ Object
Create a DOSTime instance from a vanilla Time instance.
44 45 46 |
# File 'lib/zip/dos_time.rb', line 44 def self.from_time(time) local(time.year, time.month, time.day, time.hour, time.min, time.sec) end |
.parse_binary_dos_format(bin_dos_date, bin_dos_time) ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/zip/dos_time.rb', line 48 def self.parse_binary_dos_format(bin_dos_date, bin_dos_time) second = 2 * (0b11111 & bin_dos_time) minute = (0b11111100000 & bin_dos_time) >> 5 hour = (0b1111100000000000 & bin_dos_time) >> 11 day = (0b11111 & bin_dos_date) month = (0b111100000 & bin_dos_date) >> 5 year = ((0b1111111000000000 & bin_dos_date) >> 9) + 1980 local(year, month, day, hour, minute, second) end |
Instance Method Details
#<=>(other) ⇒ Object
Dos time is only stored with two seconds accuracy.
37 38 39 40 41 |
# File 'lib/zip/dos_time.rb', line 37 def <=>(other) return unless other.kind_of?(Time) (to_i / 2) <=> (other.to_i / 2) end |
#dos_equals(other) ⇒ Object
31 32 33 34 |
# File 'lib/zip/dos_time.rb', line 31 def dos_equals(other) warn 'Zip::DOSTime#dos_equals is deprecated. Use `==` instead.' self == other end |
#to_binary_dos_date ⇒ Object
25 26 27 28 29 |
# File 'lib/zip/dos_time.rb', line 25 def to_binary_dos_date day + (month << 5) + ((year - 1980) << 9) end |
#to_binary_dos_time ⇒ Object
Register DX, the Date: Bits 0-4 day (1-31) bits 5-8 month (1-12) bits 9-15 year (four digit year minus 1980)
19 20 21 22 23 |
# File 'lib/zip/dos_time.rb', line 19 def to_binary_dos_time (sec / 2) + (min << 5) + (hour << 11) end |