Days between dates: Difference between revisions
Content added Content deleted
(Alternative C++ solution using Boost library) |
(Added Rust solution) |
||
Line 1,135: | Line 1,135: | ||
p (d2 - d1).to_i # => 291 |
p (d2 - d1).to_i # => 291 |
||
</lang> |
</lang> |
||
=={{header|Rust}}== |
|||
<lang rust>// [dependencies] |
|||
// chrono = "0.4" |
|||
use chrono::NaiveDate; |
|||
fn main() { |
|||
let args: Vec<String> = std::env::args().collect(); |
|||
if args.len() != 3 { |
|||
eprintln!("usage: {} start-date end-date", args[0]); |
|||
std::process::exit(1); |
|||
} |
|||
if let Ok(start_date) = NaiveDate::parse_from_str(&args[1], "%F") { |
|||
if let Ok(end_date) = NaiveDate::parse_from_str(&args[2], "%F") { |
|||
let d = end_date.signed_duration_since(start_date); |
|||
println!("{}", d.num_days()); |
|||
} else { |
|||
eprintln!("Can't parse end date"); |
|||
std::process::exit(1); |
|||
} |
|||
} else { |
|||
eprintln!("Can't parse start date"); |
|||
std::process::exit(1); |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
days_between_dates 2020-01-01 2020-09-06 |
|||
249 |
|||
</pre> |
|||
=={{header|Scala}}== |
=={{header|Scala}}== |