Class: Zip::DOSTime
- Inherits:
-
Time
- Object
- Time
- Zip::DOSTime
- Defined in:
- lib/zip/dos_time.rb
Overview
:nodoc:all
Class Method Summary collapse
Instance Method Summary collapse
-
#dos_equals(other) ⇒ Object
Dos time is only stored with two seconds accuracy.
- #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).
Class Method Details
.parse_binary_dos_format(binaryDosDate, binaryDosTime) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/zip/dos_time.rb', line 32 def self.parse_binary_dos_format(binaryDosDate, binaryDosTime) second = 2 * (0b11111 & binaryDosTime) minute = (0b11111100000 & binaryDosTime) >> 5 hour = (0b1111100000000000 & binaryDosTime) >> 11 day = (0b11111 & binaryDosDate) month = (0b111100000 & binaryDosDate) >> 5 year = ((0b1111111000000000 & binaryDosDate) >> 9) + 1980 begin local(year, month, day, hour, minute, second) end end |
Instance Method Details
#dos_equals(other) ⇒ Object
Dos time is only stored with two seconds accuracy
28 29 30 |
# File 'lib/zip/dos_time.rb', line 28 def dos_equals(other) to_i / 2 == other.to_i / 2 end |
#to_binary_dos_date ⇒ Object
21 22 23 24 25 |
# File 'lib/zip/dos_time.rb', line 21 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)
15 16 17 18 19 |
# File 'lib/zip/dos_time.rb', line 15 def to_binary_dos_time (sec / 2) + (min << 5) + (hour << 11) end |