Index: coreutils/src/uu/tail/src/args.rs
===================================================================
--- coreutils.orig/src/uu/tail/src/args.rs
+++ coreutils/src/uu/tail/src/args.rs
@@ -9,7 +9,7 @@ use crate::paths::Input;
 use crate::{parse, platform, Quotable};
 use clap::crate_version;
 use clap::{Arg, ArgAction, ArgMatches, Command};
-use fundu::DurationParser;
+use fundu::{DurationParser, SaturatingInto};
 use is_terminal::IsTerminal;
 use same_file::Handle;
 use std::collections::VecDeque;
@@ -235,12 +235,15 @@ impl Settings {
             //   `DURATION::MAX` or `infinity` was given
             // * not applied here but it supports customizable time units and provides better error
             //   messages
-            settings.sleep_sec =
-                DurationParser::without_time_units()
-                    .parse(source)
-                    .map_err(|_| {
-                        UUsageError::new(1, format!("invalid number of seconds: '{source}'"))
-                    })?;
+            settings.sleep_sec = match DurationParser::without_time_units().parse(source) {
+                Ok(duration) => SaturatingInto::<std::time::Duration>::saturating_into(duration),
+                Err(_) => {
+                    return Err(UUsageError::new(
+                        1,
+                        format!("invalid number of seconds: '{source}'"),
+                    ))
+                }
+            }
         }
 
         if let Some(s) = matches.get_one::<String>(options::MAX_UNCHANGED_STATS) {
Index: coreutils/src/uu/sleep/src/sleep.rs
===================================================================
--- coreutils.orig/src/uu/sleep/src/sleep.rs
+++ coreutils/src/uu/sleep/src/sleep.rs
@@ -14,7 +14,7 @@ use uucore::{
 };
 
 use clap::{crate_version, Arg, ArgAction, Command};
-use fundu::{self, DurationParser, ParseError};
+use fundu::{self, DurationParser, ParseError, SaturatingInto};
 
 static ABOUT: &str = help_about!("sleep.md");
 const USAGE: &str = help_usage!("sleep.md");
@@ -63,7 +63,7 @@ pub fn uu_app() -> Command {
 fn sleep(args: &[&str]) -> UResult<()> {
     let mut arg_error = false;
 
-    use fundu::TimeUnit::*;
+    use fundu::TimeUnit::{Day, Hour, Minute, Second};
     let parser = DurationParser::with_time_units(&[Second, Minute, Hour, Day]);
 
     let sleep_dur = args
@@ -91,7 +91,9 @@ fn sleep(args: &[&str]) -> UResult<()> {
                 None
             }
         })
-        .fold(Duration::ZERO, |acc, n| acc.saturating_add(n));
+        .fold(Duration::ZERO, |acc, n| {
+            acc.saturating_add(SaturatingInto::<std::time::Duration>::saturating_into(n))
+        });
 
     if arg_error {
         return Err(UUsageError::new(1, ""));
