From 99080bcc48229658bbb011f0866b7423f564ff55 Mon Sep 17 00:00:00 2001 From: Jessica Kwok Date: Thu, 3 Jun 2021 10:15:05 -0700 Subject: [PATCH 1/3] Add number of days challenge --- DIRECTORY.md | 1 + other/number_of_days.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 other/number_of_days.rb diff --git a/DIRECTORY.md b/DIRECTORY.md index d0c4469..5757f9c 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -75,6 +75,7 @@ ## Other * [Fisher Yates](https://github.com/TheAlgorithms/Ruby/blob/master/other/fisher_yates.rb) + * [Number of Days](https://github.com/TheAlgorithms/Ruby/blob/master/other/number_of_days.rb) ## Project Euler * Problem 1 diff --git a/other/number_of_days.rb b/other/number_of_days.rb new file mode 100644 index 0000000..4ab6906 --- /dev/null +++ b/other/number_of_days.rb @@ -0,0 +1,14 @@ +# Challenge name: Number of Days Between Two Dates +# +# Write a program to count the number of days between two dates. +# +# The two dates are given as strings, their format is YYYY-MM-DD as shown in the examples. +# Example 1: +# Input: date1 = "2019-06-29", date2 = "2019-06-30" +# Output: 1 +# +# Example 2: +# Input: date1 = "2020-01-15", date2 = "2019-12-31" +# Output: 15 +# +# Constraints: The given dates are valid dates between the years 1971 and 2100. \ No newline at end of file From e804e6814c1ee91743d9df6e6250bc387fb56fe6 Mon Sep 17 00:00:00 2001 From: Jessica Kwok Date: Thu, 8 Jul 2021 14:57:00 -0700 Subject: [PATCH 2/3] Add Date.parse solution --- other/number_of_days.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/other/number_of_days.rb b/other/number_of_days.rb index 4ab6906..0a42ad3 100644 --- a/other/number_of_days.rb +++ b/other/number_of_days.rb @@ -11,4 +11,24 @@ # Input: date1 = "2020-01-15", date2 = "2019-12-31" # Output: 15 # -# Constraints: The given dates are valid dates between the years 1971 and 2100. \ No newline at end of file +# Constraints: The given dates are valid dates between the years 1971 and 2100. + + +# +# Approach 1: Using Date.parse +# Time complexity: O(1) +# Space complexity: O(1) +# +require 'date' + +def number_of_days(date1, date2) + beginning_date = Date.parse(date1) + end_date = Date.parse(date2) + (end_date - beginning_date).to_i.abs +end + +puts number_of_days("2019-06-29", "2019-06-30") +# => 1 + +puts number_of_days("2020-01-15", "2019-12-31") +# => 15 \ No newline at end of file From 20a79f924b1c7c6370546fb9a5f26ce339d5665b Mon Sep 17 00:00:00 2001 From: Vitor Oliveira Date: Sun, 22 Aug 2021 14:20:55 -0700 Subject: [PATCH 3/3] Update number_of_days.rb --- other/number_of_days.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/other/number_of_days.rb b/other/number_of_days.rb index 0a42ad3..c0994c7 100644 --- a/other/number_of_days.rb +++ b/other/number_of_days.rb @@ -15,10 +15,11 @@ # -# Approach 1: Using Date.parse +# Approach 1: Using Ruby built-in Date.parse # Time complexity: O(1) # Space complexity: O(1) # + require 'date' def number_of_days(date1, date2) @@ -31,4 +32,4 @@ puts number_of_days("2019-06-29", "2019-06-30") # => 1 puts number_of_days("2020-01-15", "2019-12-31") -# => 15 \ No newline at end of file +# => 15