date_diff 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +7 -0
- data/date_diff.gemspec +13 -3
- data/lib/date_diff.rb +15 -17
- data/lib/date_diff/version.rb +1 -1
- metadata +2 -1
data/.travis.yml
ADDED
data/date_diff.gemspec
CHANGED
@@ -20,9 +20,19 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
|
24
|
-
|
23
|
+
|
24
|
+
if RUBY_VERSION == "1.9.3"
|
25
|
+
spec.add_development_dependency "activesupport"
|
26
|
+
end
|
27
|
+
|
25
28
|
if RUBY_VERSION == "1.8.7"
|
26
|
-
|
29
|
+
spec.add_development_dependency "activesupport", "2.3.12"
|
30
|
+
spec.add_development_dependency 'minitest', '3.2.0'
|
27
31
|
end
|
32
|
+
|
33
|
+
if RUBY_VERSION == "1.9.2"
|
34
|
+
spec.add_development_dependency "activesupport", "3.2.11"
|
35
|
+
end
|
36
|
+
|
37
|
+
spec.add_development_dependency "i18n"
|
28
38
|
end
|
data/lib/date_diff.rb
CHANGED
@@ -8,41 +8,39 @@ class Date
|
|
8
8
|
def self.diff(start_date, end_date)
|
9
9
|
common_year_days_in_month = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
10
10
|
start_date, end_date = end_date, start_date if start_date > end_date
|
11
|
-
|
11
|
+
|
12
12
|
start_date_month, start_date_day = start_date.month, start_date.day
|
13
13
|
end_date_month, end_date_day = end_date.month, end_date.day
|
14
|
-
|
14
|
+
|
15
15
|
day_difference = end_date_day - start_date_day
|
16
|
-
|
17
|
-
if (day_difference < 0)
|
16
|
+
|
17
|
+
if (day_difference < 0)
|
18
18
|
day_difference = nday[start_date_month-1] - start_date_day + end_date_day
|
19
19
|
end_date_month = end_date_month -1
|
20
20
|
end
|
21
|
-
|
22
|
-
if (end_date_month < 0)
|
21
|
+
|
22
|
+
if (end_date_month < 0)
|
23
23
|
end_date_month = end_date_month + 12
|
24
24
|
end_date.year = end_date.year -1
|
25
|
-
end
|
26
|
-
|
25
|
+
end
|
26
|
+
|
27
27
|
month_difference = end_date_month - start_date_month
|
28
|
-
|
29
|
-
if (month_difference < 0)
|
28
|
+
|
29
|
+
if (month_difference < 0)
|
30
30
|
month_difference = month_difference + 12
|
31
31
|
end_date.year = end_date.year -1
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
year_difference = end_date.year - start_date.year
|
35
|
-
|
36
|
-
|
35
|
+
|
37
36
|
difference_hash = { :year => year_difference, :month => month_difference, :day => day_difference }
|
38
|
-
|
37
|
+
|
39
38
|
difference_array = []
|
40
|
-
|
39
|
+
["year", "month", "day"].each do |key|
|
40
|
+
value = difference_hash[key.to_sym]
|
41
41
|
difference_array << value.to_s + " " + ((value > 1)? I18n.t(key.to_s.pluralize, :default => key.to_s.pluralize.to_s) : I18n.t(key.to_s, :default => key.to_s)).to_s if value > 0
|
42
42
|
end
|
43
43
|
difference_hash[:difference] = difference_array.join(" ").to_s
|
44
44
|
difference_hash
|
45
|
-
|
46
|
-
|
47
45
|
end
|
48
46
|
end
|
data/lib/date_diff/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: date_diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -83,6 +83,7 @@ extensions: []
|
|
83
83
|
extra_rdoc_files: []
|
84
84
|
files:
|
85
85
|
- .gitignore
|
86
|
+
- .travis.yml
|
86
87
|
- Gemfile
|
87
88
|
- LICENSE.txt
|
88
89
|
- README.md
|