Patch #14735 » RM_14735_allow_negative_time_entries.diff
| lib/redmine/core_ext/string/conversions.rb (revision 281) | ||
|---|---|---|
| 24 | 24 |
def to_hours |
| 25 | 25 |
s = self.dup |
| 26 | 26 |
s.strip! |
| 27 |
if s =~ %r{^(\d+([.,]\d+)?)h?$}
|
|
| 27 |
if s =~ %r{^([-]?\d+([.,]\d+)?)h?$}
|
|
| 28 | 28 |
s = $1 |
| 29 | 29 |
else |
| 30 | 30 |
# 2:30 => 2.5 |
| 31 |
s.gsub!(%r{^(\d+):(\d+)$}) { $1.to_i + $2.to_i / 60.0 }
|
|
| 31 |
s.gsub!(%r{^(-?\d+):(\d+)$}) { $1.to_i + ( $2.to_i / 60.0 * ($1.to_i > 0 ? 1 : -1) ) }
|
|
| 32 | 32 |
# 2h30, 2h, 30m => 2.5, 2, 0.5 |
| 33 |
s.gsub!(%r{^((\d+)\s*(h|hours?))?\s*((\d+)\s*(m|min)?)?$}) { |m| ($1 || $4) ? ($2.to_i + $5.to_i / 60.0) : m[0] }
|
|
| 33 |
s.gsub!(%r{^((-?\d+)\s*(h|hours?))?\s*((\d+)\s*(m|min)?)?$}) { |m| ($1 || $4) ? ($2.to_i + $5.to_i / 60.0 * ($2.to_i > 0 ? 1 : -1)) : m[0] }
|
|
| 34 | 34 |
end |
| 35 | 35 |
# 2,5 => 2.5 |
| 36 | 36 |
s.gsub!(',', '.')
|
- « Previous
- 1
- 2
- Next »