457 lines
No EOL
140 KiB
HTML
457 lines
No EOL
140 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="generator" content="rustdoc">
|
||
<meta name="description" content="API documentation for the Rust `Duration` struct in crate `chrono`.">
|
||
<meta name="keywords" content="rust, rustlang, rust-lang, Duration">
|
||
|
||
<title>chrono::Duration - Rust</title>
|
||
|
||
<link rel="stylesheet" type="text/css" href="../normalize.css">
|
||
<link rel="stylesheet" type="text/css" href="../rustdoc.css"
|
||
id="mainThemeStyle">
|
||
|
||
<link rel="stylesheet" type="text/css" href="../dark.css">
|
||
<link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle">
|
||
<script src="../storage.js"></script>
|
||
|
||
|
||
|
||
|
||
</head>
|
||
<body class="rustdoc struct">
|
||
<!--[if lte IE 8]>
|
||
<div class="warning">
|
||
This old browser is unsupported and will most likely display funky
|
||
things.
|
||
</div>
|
||
<![endif]-->
|
||
|
||
|
||
|
||
<nav class="sidebar">
|
||
<div class="sidebar-menu">☰</div>
|
||
|
||
<p class='location'>Struct Duration</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.weeks">weeks</a><a href="#method.days">days</a><a href="#method.hours">hours</a><a href="#method.minutes">minutes</a><a href="#method.seconds">seconds</a><a href="#method.milliseconds">milliseconds</a><a href="#method.microseconds">microseconds</a><a href="#method.nanoseconds">nanoseconds</a><a href="#method.span">span</a><a href="#method.num_weeks">num_weeks</a><a href="#method.num_days">num_days</a><a href="#method.num_hours">num_hours</a><a href="#method.num_minutes">num_minutes</a><a href="#method.num_seconds">num_seconds</a><a href="#method.num_milliseconds">num_milliseconds</a><a href="#method.num_microseconds">num_microseconds</a><a href="#method.num_nanoseconds">num_nanoseconds</a><a href="#method.checked_add">checked_add</a><a href="#method.checked_sub">checked_sub</a><a href="#method.min_value">min_value</a><a href="#method.max_value">max_value</a><a href="#method.zero">zero</a><a href="#method.is_zero">is_zero</a><a href="#method.from_std">from_std</a><a href="#method.to_std">to_std</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Copy">Copy</a><a href="#impl-PartialOrd%3CDuration%3E">PartialOrd<Duration></a><a href="#impl-Clone">Clone</a><a href="#impl-Add%3CDuration%3E">Add<Duration></a><a href="#impl-Sub%3CDuration%3E">Sub<Duration></a><a href="#impl-Ord">Ord</a><a href="#impl-Eq">Eq</a><a href="#impl-PartialEq%3CDuration%3E">PartialEq<Duration></a><a href="#impl-Display">Display</a><a href="#impl-Mul%3Ci32%3E">Mul<i32></a><a href="#impl-Debug">Debug</a><a href="#impl-Neg">Neg</a><a href="#impl-Div%3Ci32%3E">Div<i32></a><a href="#impl-Add%3COldDuration%3E">Add<OldDuration></a><a href="#impl-AddAssign%3COldDuration%3E">AddAssign<OldDuration></a><a href="#impl-Sub%3COldDuration%3E">Sub<OldDuration></a><a href="#impl-SubAssign%3COldDuration%3E">SubAssign<OldDuration></a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='index.html'>chrono</a></p><script>window.sidebarCurrent = {name: 'Duration', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div>
|
||
</nav>
|
||
|
||
<div class="theme-picker">
|
||
<button id="theme-picker" aria-label="Pick another theme!">
|
||
<img src="../brush.svg" width="18" alt="Pick another theme!">
|
||
</button>
|
||
<div id="theme-choices"></div>
|
||
</div>
|
||
<script src="../theme.js"></script>
|
||
<nav class="sub">
|
||
<form class="search-form js-only">
|
||
<div class="search-container">
|
||
<input class="search-input" name="search"
|
||
autocomplete="off"
|
||
placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
|
||
type="search">
|
||
</div>
|
||
</form>
|
||
</nav>
|
||
|
||
<section id='main' class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='index.html'>chrono</a>::<wbr><a class="struct" href=''>Duration</a></span><span class='out-of-band'><span id='render-detail'>
|
||
<a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
|
||
[<span class='inner'>−</span>]
|
||
</a>
|
||
</span><a class='srclink' href='../src/time/duration.rs.html#45-48' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct Duration { /* fields omitted */ }</pre></div><div class='docblock'><p>ISO 8601 time duration with nanosecond precision.
|
||
This also allows for the negative duration; see individual methods for details.</p>
|
||
</div>
|
||
<h2 id='methods' class='small-section-header'>
|
||
Methods<a href='#methods' class='anchor'></a>
|
||
</h2>
|
||
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#62-288' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.weeks' class="method"><span id='weeks.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.weeks' class='fnname'>weeks</a>(weeks: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#67-70' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of weeks.
|
||
Equivalent to <code>Duration::seconds(weeks * 7 * 24 * 60 * 60)</code> with overflow checks.
|
||
Panics when the duration is out of bounds.</p>
|
||
</div><h4 id='method.days' class="method"><span id='days.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.days' class='fnname'>days</a>(days: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#76-79' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of days.
|
||
Equivalent to <code>Duration::seconds(days * 24 * 60 * 60)</code> with overflow checks.
|
||
Panics when the duration is out of bounds.</p>
|
||
</div><h4 id='method.hours' class="method"><span id='hours.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.hours' class='fnname'>hours</a>(hours: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#85-88' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of hours.
|
||
Equivalent to <code>Duration::seconds(hours * 60 * 60)</code> with overflow checks.
|
||
Panics when the duration is out of bounds.</p>
|
||
</div><h4 id='method.minutes' class="method"><span id='minutes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.minutes' class='fnname'>minutes</a>(minutes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#94-97' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of minutes.
|
||
Equivalent to <code>Duration::seconds(minutes * 60)</code> with overflow checks.
|
||
Panics when the duration is out of bounds.</p>
|
||
</div><h4 id='method.seconds' class="method"><span id='seconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.seconds' class='fnname'>seconds</a>(seconds: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#103-109' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of seconds.
|
||
Panics when the duration is more than <code>i64::MAX</code> milliseconds
|
||
or less than <code>i64::MIN</code> milliseconds.</p>
|
||
</div><h4 id='method.milliseconds' class="method"><span id='milliseconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.milliseconds' class='fnname'>milliseconds</a>(milliseconds: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#113-117' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of milliseconds.</p>
|
||
</div><h4 id='method.microseconds' class="method"><span id='microseconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.microseconds' class='fnname'>microseconds</a>(microseconds: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#121-125' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of microseconds.</p>
|
||
</div><h4 id='method.nanoseconds' class="method"><span id='nanoseconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.nanoseconds' class='fnname'>nanoseconds</a>(nanos: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#129-132' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Makes a new <code>Duration</code> with given number of nanoseconds.</p>
|
||
</div><h4 id='method.span' class="method"><span id='span.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.span' class='fnname'>span</a><F>(f: F) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a> <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(), </span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#136-140' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Runs a closure, returning the duration of time it took to run the
|
||
closure.</p>
|
||
</div><h4 id='method.num_weeks' class="method"><span id='num_weeks.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_weeks' class='fnname'>num_weeks</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#144-146' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole weeks in the duration.</p>
|
||
</div><h4 id='method.num_days' class="method"><span id='num_days.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_days' class='fnname'>num_days</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#149-151' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole days in the duration.</p>
|
||
</div><h4 id='method.num_hours' class="method"><span id='num_hours.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_hours' class='fnname'>num_hours</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#155-157' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole hours in the duration.</p>
|
||
</div><h4 id='method.num_minutes' class="method"><span id='num_minutes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_minutes' class='fnname'>num_minutes</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#161-163' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole minutes in the duration.</p>
|
||
</div><h4 id='method.num_seconds' class="method"><span id='num_seconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_seconds' class='fnname'>num_seconds</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#166-173' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole seconds in the duration.</p>
|
||
</div><h4 id='method.num_milliseconds' class="method"><span id='num_milliseconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_milliseconds' class='fnname'>num_milliseconds</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#187-193' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole milliseconds in the duration,</p>
|
||
</div><h4 id='method.num_microseconds' class="method"><span id='num_microseconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_microseconds' class='fnname'>num_microseconds</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#197-201' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole microseconds in the duration,
|
||
or <code>None</code> on overflow (exceeding 2<sup>63</sup> microseconds in either direction).</p>
|
||
</div><h4 id='method.num_nanoseconds' class="method"><span id='num_nanoseconds.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.num_nanoseconds' class='fnname'>num_nanoseconds</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#205-209' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the total number of whole nanoseconds in the duration,
|
||
or <code>None</code> on overflow (exceeding 2<sup>63</sup> nanoseconds in either direction).</p>
|
||
</div><h4 id='method.checked_add' class="method"><span id='checked_add.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.checked_add' class='fnname'>checked_add</a>(&self, rhs: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#212-223' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Add two durations, returning <code>None</code> if overflow occurred.</p>
|
||
</div><h4 id='method.checked_sub' class="method"><span id='checked_sub.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.checked_sub' class='fnname'>checked_sub</a>(&self, rhs: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#226-237' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Subtract two durations, returning <code>None</code> if overflow occurred.</p>
|
||
</div><h4 id='method.min_value' class="method"><span id='min_value.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.min_value' class='fnname'>min_value</a>() -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#241' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>The minimum possible <code>Duration</code>: <code>i64::MIN</code> milliseconds.</p>
|
||
</div><h4 id='method.max_value' class="method"><span id='max_value.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.max_value' class='fnname'>max_value</a>() -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#245' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>The maximum possible <code>Duration</code>: <code>i64::MAX</code> milliseconds.</p>
|
||
</div><h4 id='method.zero' class="method"><span id='zero.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.zero' class='fnname'>zero</a>() -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#249-251' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>A duration where the stored seconds and nanoseconds are equal to zero.</p>
|
||
</div><h4 id='method.is_zero' class="method"><span id='is_zero.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.is_zero' class='fnname'>is_zero</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#255-257' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns <code>true</code> if the duration equals <code>Duration::zero()</code>.</p>
|
||
</div><h4 id='method.from_std' class="method"><span id='from_std.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.from_std' class='fnname'>from_std</a>(duration: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>, <a class="struct" href="../time/duration/struct.OutOfRangeError.html" title="struct time::duration::OutOfRangeError">OutOfRangeError</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#263-276' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates a <code>time::Duration</code> object from <code>std::time::Duration</code></p>
|
||
<p>This function errors when original duration is larger than the maximum
|
||
value supported for this type.</p>
|
||
</div><h4 id='method.to_std' class="method"><span id='to_std.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.to_std' class='fnname'>to_std</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>, <a class="struct" href="../time/duration/struct.OutOfRangeError.html" title="struct time::duration::OutOfRangeError">OutOfRangeError</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#282-287' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates a <code>std::time::Duration</code> object from <code>time::Duration</code></p>
|
||
<p>This function errors when duration is less than zero. As standard
|
||
library implementation is limited to non-negative values.</p>
|
||
</div></div>
|
||
<h2 id='implementations' class='small-section-header'>
|
||
Trait Implementations<a href='#implementations' class='anchor'></a>
|
||
</h2>
|
||
<div id='implementations-list'>
|
||
<h3 id='impl-Copy' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Copy' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-PartialOrd%3CDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-PartialOrd%3CDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.partial_cmp' class="method"><span id='partial_cmp.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp' class='fnname'>partial_cmp</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></p>
|
||
</div><h4 id='method.lt' class="method"><span id='lt.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt' class='fnname'>lt</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></p>
|
||
</div><h4 id='method.le' class="method"><span id='le.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le' class='fnname'>le</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></p>
|
||
</div><h4 id='method.gt' class="method"><span id='gt.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt' class='fnname'>gt</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></p>
|
||
</div><h4 id='method.ge' class="method"><span id='ge.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge' class='fnname'>ge</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></p>
|
||
</div></div><h3 id='impl-Clone' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Clone' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.clone' class="method"><span id='clone.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone' class='fnname'>clone</a>(&self) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
|
||
</div><h4 id='method.clone_from' class="method"><span id='clone_from.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#117-119' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
|
||
</div></div><h3 id='impl-Add%3CDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Add%3CDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#303-315' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output' class="type"><span id='Output.t' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add' class="method"><span id='add.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#306-314' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3CDuration%3E-1' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../time/struct.Tm.html" title="struct time::Tm">Tm</a></code><a href='#impl-Add%3CDuration%3E-1' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#341-351' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-1' class="type"><span id='Output.t-1' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../time/struct.Tm.html" title="struct time::Tm">Tm</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-1' class="method"><span id='add.v-1' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, other: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../time/struct.Tm.html" title="struct time::Tm">Tm</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#348-350' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>The resulting Tm is in UTC.</p>
|
||
</div></div><h3 id='impl-Add%3CDuration%3E-2' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../time/struct.SteadyTime.html" title="struct time::SteadyTime">SteadyTime</a></code><a href='#impl-Add%3CDuration%3E-2' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#275-281' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-2' class="type"><span id='Output.t-2' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../time/struct.SteadyTime.html" title="struct time::SteadyTime">SteadyTime</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-2' class="method"><span id='add.v-2' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, other: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../time/struct.SteadyTime.html" title="struct time::SteadyTime">SteadyTime</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#278-280' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3CDuration%3E-3' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../time/struct.Timespec.html" title="struct time::Timespec">Timespec</a></code><a href='#impl-Add%3CDuration%3E-3' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#91-111' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-3' class="type"><span id='Output.t-3' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../time/struct.Timespec.html" title="struct time::Timespec">Timespec</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-3' class="method"><span id='add.v-3' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, other: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../time/struct.Timespec.html" title="struct time::Timespec">Timespec</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#94-110' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3CDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../time/struct.Tm.html" title="struct time::Tm">Tm</a></code><a href='#impl-Sub%3CDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#353-363' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-4' class="type"><span id='Output.t-4' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../time/struct.Tm.html" title="struct time::Tm">Tm</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub' class="method"><span id='sub.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, other: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../time/struct.Tm.html" title="struct time::Tm">Tm</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#360-362' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>The resulting Tm is in UTC.</p>
|
||
</div></div><h3 id='impl-Sub%3CDuration%3E-1' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../time/struct.SteadyTime.html" title="struct time::SteadyTime">SteadyTime</a></code><a href='#impl-Sub%3CDuration%3E-1' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#267-273' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-5' class="type"><span id='Output.t-5' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../time/struct.SteadyTime.html" title="struct time::SteadyTime">SteadyTime</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-1' class="method"><span id='sub.v-1' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, other: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../time/struct.SteadyTime.html" title="struct time::SteadyTime">SteadyTime</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#270-272' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3CDuration%3E-2' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../time/struct.Timespec.html" title="struct time::Timespec">Timespec</a></code><a href='#impl-Sub%3CDuration%3E-2' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#113-133' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-6' class="type"><span id='Output.t-6' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../time/struct.Timespec.html" title="struct time::Timespec">Timespec</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-2' class="method"><span id='sub.v-2' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, other: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../time/struct.Timespec.html" title="struct time::Timespec">Timespec</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/lib.rs.html#116-132' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3CDuration%3E-3' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Sub%3CDuration%3E-3' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#317-329' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-7' class="type"><span id='Output.t-7' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-3' class="method"><span id='sub.v-3' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#320-328' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-Ord' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Ord' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.cmp' class="method"><span id='cmp.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp' class='fnname'>cmp</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method returns an <code>Ordering</code> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></p>
|
||
</div><h4 id='method.max' class="method"><span id='max.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max' class='fnname'>max</a>(self, other: Self) -> Self</code></span></td><td><span class='out-of-band'><div class='ghost'></div><div class='since' title='Stable since Rust version 1.21.0'>1.21.0</div><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#461-464' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></p>
|
||
</div><h4 id='method.min' class="method"><span id='min.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min' class='fnname'>min</a>(self, other: Self) -> Self</code></span></td><td><span class='out-of-band'><div class='ghost'></div><div class='since' title='Stable since Rust version 1.21.0'>1.21.0</div><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#477-480' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></p>
|
||
</div></div><h3 id='impl-Eq' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Eq' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-PartialEq%3CDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-PartialEq%3CDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.eq' class="method"><span id='eq.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq' class='fnname'>eq</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
|
||
</div><h4 id='method.ne' class="method"><span id='ne.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne' class='fnname'>ne</a>(&self, __arg_0: &<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests for <code>!=</code>.</p>
|
||
</div></div><h3 id='impl-Display' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Display' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#363-392' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.fmt' class="method"><span id='fmt.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt' class='fnname'>fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#364-391' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
|
||
</div></div><h3 id='impl-Mul%3Ci32%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Mul%3Ci32%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#331-341' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-8' class="type"><span id='Output.t-8' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>*</code> operator.</p>
|
||
</div><h4 id='method.mul' class="method"><span id='mul.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul' class='fnname'>mul</a>(self, rhs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#334-340' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>*</code> operation.</p>
|
||
</div></div><h3 id='impl-Debug' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Debug' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.fmt-1' class="method"><span id='fmt.v-1' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&self, __arg_0: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
|
||
</div></div><h3 id='impl-Neg' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Neg.html" title="trait core::ops::arith::Neg">Neg</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Neg' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#290-301' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-9' class="type"><span id='Output.t-9' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Neg.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.neg' class="method"><span id='neg.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Neg.html#tymethod.neg' class='fnname'>neg</a>(self) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#294-300' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the unary <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-Div%3Ci32%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html" title="trait core::ops::arith::Div">Div</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Div%3Ci32%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#343-361' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-10' class="type"><span id='Output.t-10' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>/</code> operator.</p>
|
||
</div><h4 id='method.div' class="method"><span id='div.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Div.html#tymethod.div' class='fnname'>div</a>(self, rhs: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) -> <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/time/duration.rs.html#346-360' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>/</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3COldDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code><a href='#impl-Add%3COldDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1330-1337' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>An addition of <code>Duration</code> to <code>NaiveDate</code> discards the fractional days,
|
||
rounding to the closest integral number of days towards <code>Duration::zero()</code>.</p>
|
||
<p>Panics on underflow or overflow.
|
||
Use <a href="#method.checked_add_signed"><code>NaiveDate::checked_add_signed</code></a> to detect that.</p>
|
||
<h1 id="example" class="section-header"><a href="#example">Example</a></h1>
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">chrono</span>::<span class="ident">NaiveDate</span>;
|
||
<span class="kw">use</span> <span class="ident">time</span>::<span class="ident">Duration</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">from_ymd</span> <span class="op">=</span> <span class="ident">NaiveDate</span>::<span class="ident">from_ymd</span>;
|
||
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">86399</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">86399</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">1</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">2</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="op">-</span><span class="number">1</span>), <span class="ident">from_ymd</span>(<span class="number">2013</span>, <span class="number">12</span>, <span class="number">31</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">364</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">12</span>, <span class="number">31</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">365</span><span class="kw-2">*</span><span class="number">4</span> <span class="op">+</span> <span class="number">1</span>), <span class="ident">from_ymd</span>(<span class="number">2018</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">365</span><span class="kw-2">*</span><span class="number">400</span> <span class="op">+</span> <span class="number">97</span>), <span class="ident">from_ymd</span>(<span class="number">2414</span>, <span class="number">1</span>, <span class="number">1</span>));</pre>
|
||
</div><div class='impl-items'><h4 id='associatedtype.Output-11' class="type"><span id='Output.t-11' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-4' class="method"><span id='add.v-4' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1334-1336' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-AddAssign%3COldDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html" title="trait core::ops::arith::AddAssign">AddAssign</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code><a href='#impl-AddAssign%3COldDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1339-1344' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.add_assign' class="method"><span id='add_assign.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html#tymethod.add_assign' class='fnname'>add_assign</a>(&mut self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1341-1343' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+=</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3COldDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code><a href='#impl-Sub%3COldDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1372-1379' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>A subtraction of <code>Duration</code> from <code>NaiveDate</code> discards the fractional days,
|
||
rounding to the closest integral number of days towards <code>Duration::zero()</code>.
|
||
It is same to the addition with a negated <code>Duration</code>.</p>
|
||
<p>Panics on underflow or overflow.
|
||
Use <a href="#method.checked_sub_signed"><code>NaiveDate::checked_sub_signed</code></a> to detect that.</p>
|
||
<h1 id="example-1" class="section-header"><a href="#example-1">Example</a></h1>
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">chrono</span>::<span class="ident">NaiveDate</span>;
|
||
<span class="kw">use</span> <span class="ident">time</span>::<span class="ident">Duration</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">from_ymd</span> <span class="op">=</span> <span class="ident">NaiveDate</span>::<span class="ident">from_ymd</span>;
|
||
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">86399</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">86399</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">1</span>), <span class="ident">from_ymd</span>(<span class="number">2013</span>, <span class="number">12</span>, <span class="number">31</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="op">-</span><span class="number">1</span>), <span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">2</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">364</span>), <span class="ident">from_ymd</span>(<span class="number">2013</span>, <span class="number">1</span>, <span class="number">2</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">365</span><span class="kw-2">*</span><span class="number">4</span> <span class="op">+</span> <span class="number">1</span>), <span class="ident">from_ymd</span>(<span class="number">2010</span>, <span class="number">1</span>, <span class="number">1</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_ymd</span>(<span class="number">2014</span>, <span class="number">1</span>, <span class="number">1</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">365</span><span class="kw-2">*</span><span class="number">400</span> <span class="op">+</span> <span class="number">97</span>), <span class="ident">from_ymd</span>(<span class="number">1614</span>, <span class="number">1</span>, <span class="number">1</span>));</pre>
|
||
</div><div class='impl-items'><h4 id='associatedtype.Output-12' class="type"><span id='Output.t-12' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-4' class="method"><span id='sub.v-4' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1376-1378' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-SubAssign%3COldDuration%3E' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html" title="trait core::ops::arith::SubAssign">SubAssign</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDate.html" title="struct chrono::naive::NaiveDate">NaiveDate</a></code><a href='#impl-SubAssign%3COldDuration%3E' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1381-1386' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.sub_assign' class="method"><span id='sub_assign.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html#tymethod.sub_assign' class='fnname'>sub_assign</a>(&mut self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/date.rs.html#1383-1385' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-=</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3COldDuration%3E-1' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code><a href='#impl-Add%3COldDuration%3E-1' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1050-1057' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>An addition of <code>Duration</code> to <code>NaiveTime</code> wraps around and never overflows or underflows.
|
||
In particular the addition ignores integral number of days.</p>
|
||
<p>As a part of Chrono's <a href="#leap-second-handling">leap second handling</a>,
|
||
the addition assumes that <strong>there is no leap second ever</strong>,
|
||
except when the <code>NaiveTime</code> itself represents a leap second
|
||
in which case the assumption becomes that <strong>there is exactly a single leap second ever</strong>.</p>
|
||
<h1 id="example-2" class="section-header"><a href="#example-2">Example</a></h1>
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">chrono</span>::<span class="ident">NaiveTime</span>;
|
||
<span class="kw">use</span> <span class="ident">time</span>::<span class="ident">Duration</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">from_hmsm</span> <span class="op">=</span> <span class="ident">NaiveTime</span>::<span class="ident">from_hms_milli</span>;
|
||
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">1</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">1</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">60</span> <span class="op">+</span> <span class="number">4</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">11</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">7</span><span class="kw-2">*</span><span class="number">60</span><span class="kw-2">*</span><span class="number">60</span> <span class="op">-</span> <span class="number">6</span><span class="kw-2">*</span><span class="number">60</span>), <span class="ident">from_hmsm</span>(<span class="number">9</span>, <span class="number">59</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">80</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">80</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">950</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">280</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">230</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">950</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="op">-</span><span class="number">980</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">970</span>));</pre>
|
||
<p>The addition wraps around.</p>
|
||
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">22</span><span class="kw-2">*</span><span class="number">60</span><span class="kw-2">*</span><span class="number">60</span>), <span class="ident">from_hmsm</span>(<span class="number">1</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">8</span><span class="kw-2">*</span><span class="number">60</span><span class="kw-2">*</span><span class="number">60</span>), <span class="ident">from_hmsm</span>(<span class="number">19</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">800</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));</pre>
|
||
<p>Leap seconds are handled, but the addition assumes that it is the only leap second happened.</p>
|
||
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">let</span> <span class="ident">leap</span> <span class="op">=</span> <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="op">-</span><span class="number">500</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">800</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">500</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_800</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">800</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">0</span>, <span class="number">100</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">10</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">9</span>, <span class="number">300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">10</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">50</span>, <span class="number">300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">1</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">300</span>));</pre>
|
||
</div><div class='impl-items'><h4 id='associatedtype.Output-13' class="type"><span id='Output.t-13' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-5' class="method"><span id='add.v-5' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1054-1056' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-AddAssign%3COldDuration%3E-1' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html" title="trait core::ops::arith::AddAssign">AddAssign</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code><a href='#impl-AddAssign%3COldDuration%3E-1' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1059-1064' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.add_assign-1' class="method"><span id='add_assign.v-1' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html#tymethod.add_assign' class='fnname'>add_assign</a>(&mut self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1061-1063' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+=</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3COldDuration%3E-1' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code><a href='#impl-Sub%3COldDuration%3E-1' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1120-1127' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>A subtraction of <code>Duration</code> from <code>NaiveTime</code> wraps around and never overflows or underflows.
|
||
In particular the addition ignores integral number of days.
|
||
It is same to the addition with a negated <code>Duration</code>.</p>
|
||
<p>As a part of Chrono's <a href="#leap-second-handling">leap second handling</a>,
|
||
the addition assumes that <strong>there is no leap second ever</strong>,
|
||
except when the <code>NaiveTime</code> itself represents a leap second
|
||
in which case the assumption becomes that <strong>there is exactly a single leap second ever</strong>.</p>
|
||
<h1 id="example-3" class="section-header"><a href="#example-3">Example</a></h1>
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">chrono</span>::<span class="ident">NaiveTime</span>;
|
||
<span class="kw">use</span> <span class="ident">time</span>::<span class="ident">Duration</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">from_hmsm</span> <span class="op">=</span> <span class="ident">NaiveTime</span>::<span class="ident">from_hms_milli</span>;
|
||
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">1</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">60</span> <span class="op">+</span> <span class="number">5</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">4</span>, <span class="number">2</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">2</span><span class="kw-2">*</span><span class="number">60</span><span class="kw-2">*</span><span class="number">60</span> <span class="op">+</span> <span class="number">6</span><span class="kw-2">*</span><span class="number">60</span>), <span class="ident">from_hmsm</span>(<span class="number">0</span>, <span class="number">59</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">80</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">920</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">950</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">280</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">670</span>));</pre>
|
||
<p>The subtraction wraps around.</p>
|
||
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">8</span><span class="kw-2">*</span><span class="number">60</span><span class="kw-2">*</span><span class="number">60</span>), <span class="ident">from_hmsm</span>(<span class="number">19</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">800</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">0</span>));</pre>
|
||
<p>Leap seconds are handled, but the subtraction assumes that it is the only leap second happened.</p>
|
||
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">let</span> <span class="ident">leap</span> <span class="op">=</span> <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">200</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_100</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">500</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">800</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">60</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">0</span>, <span class="number">300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">1</span>), <span class="ident">from_hmsm</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">0</span>, <span class="number">300</span>));</pre>
|
||
</div><div class='impl-items'><h4 id='associatedtype.Output-14' class="type"><span id='Output.t-14' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-5' class="method"><span id='sub.v-5' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1124-1126' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-SubAssign%3COldDuration%3E-1' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html" title="trait core::ops::arith::SubAssign">SubAssign</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveTime.html" title="struct chrono::naive::NaiveTime">NaiveTime</a></code><a href='#impl-SubAssign%3COldDuration%3E-1' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1129-1134' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.sub_assign-1' class="method"><span id='sub_assign.v-1' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html#tymethod.sub_assign' class='fnname'>sub_assign</a>(&mut self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/time.rs.html#1131-1133' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-=</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3COldDuration%3E-2' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code><a href='#impl-Add%3COldDuration%3E-2' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1223-1230' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>An addition of <code>Duration</code> to <code>NaiveDateTime</code> yields another <code>NaiveDateTime</code>.</p>
|
||
<p>As a part of Chrono's <a href="./struct.NaiveTime.html#leap-second-handling">leap second handling</a>,
|
||
the addition assumes that <strong>there is no leap second ever</strong>,
|
||
except when the <code>NaiveDateTime</code> itself represents a leap second
|
||
in which case the assumption becomes that <strong>there is exactly a single leap second ever</strong>.</p>
|
||
<p>Panics on underflow or overflow.
|
||
Use <a href="#method.checked_add_signed"><code>NaiveDateTime::checked_add_signed</code></a> to detect that.</p>
|
||
<h1 id="example-4" class="section-header"><a href="#example-4">Example</a></h1>
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">chrono</span>::<span class="ident">NaiveDate</span>;
|
||
<span class="kw">use</span> <span class="ident">time</span>::<span class="ident">Duration</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">from_ymd</span> <span class="op">=</span> <span class="ident">NaiveDate</span>::<span class="ident">from_ymd</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">d</span> <span class="op">=</span> <span class="ident">from_ymd</span>(<span class="number">2016</span>, <span class="number">7</span>, <span class="number">8</span>);
|
||
<span class="kw">let</span> <span class="ident">hms</span> <span class="op">=</span> <span class="op">|</span><span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span><span class="op">|</span> <span class="ident">d</span>.<span class="ident">and_hms</span>(<span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">1</span>), <span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">1</span>), <span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">3600</span> <span class="op">+</span> <span class="number">60</span>), <span class="ident">hms</span>(<span class="number">4</span>, <span class="number">6</span>, <span class="number">7</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">86_400</span>),
|
||
<span class="ident">from_ymd</span>(<span class="number">2016</span>, <span class="number">7</span>, <span class="number">9</span>).<span class="ident">and_hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">365</span>),
|
||
<span class="ident">from_ymd</span>(<span class="number">2017</span>, <span class="number">7</span>, <span class="number">8</span>).<span class="ident">and_hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>));
|
||
|
||
<span class="kw">let</span> <span class="ident">hmsm</span> <span class="op">=</span> <span class="op">|</span><span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span>, <span class="ident">milli</span><span class="op">|</span> <span class="ident">d</span>.<span class="ident">and_hms_milli</span>(<span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span>, <span class="ident">milli</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">980</span>) <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">450</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">430</span>));</pre>
|
||
<p>Leap seconds are handled,
|
||
but the addition assumes that it is the only leap second happened.</p>
|
||
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">let</span> <span class="ident">leap</span> <span class="op">=</span> <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="op">-</span><span class="number">500</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">800</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">500</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_800</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">800</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">0</span>, <span class="number">100</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">10</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">9</span>, <span class="number">300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">10</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">50</span>, <span class="number">300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">1</span>),
|
||
<span class="ident">from_ymd</span>(<span class="number">2016</span>, <span class="number">7</span>, <span class="number">9</span>).<span class="ident">and_hms_milli</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">300</span>));</pre>
|
||
</div><div class='impl-items'><h4 id='associatedtype.Output-15' class="type"><span id='Output.t-15' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-6' class="method"><span id='add.v-6' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1227-1229' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-AddAssign%3COldDuration%3E-2' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html" title="trait core::ops::arith::AddAssign">AddAssign</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code><a href='#impl-AddAssign%3COldDuration%3E-2' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1232-1237' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.add_assign-2' class="method"><span id='add_assign.v-2' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.AddAssign.html#tymethod.add_assign' class='fnname'>add_assign</a>(&mut self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1234-1236' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+=</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3COldDuration%3E-2' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code><a href='#impl-Sub%3COldDuration%3E-2' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1293-1300' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='docblock'><p>A subtraction of <code>Duration</code> from <code>NaiveDateTime</code> yields another <code>NaiveDateTime</code>.
|
||
It is same to the addition with a negated <code>Duration</code>.</p>
|
||
<p>As a part of Chrono's <a href="./struct.NaiveTime.html#leap-second-handling">leap second handling</a>,
|
||
the addition assumes that <strong>there is no leap second ever</strong>,
|
||
except when the <code>NaiveDateTime</code> itself represents a leap second
|
||
in which case the assumption becomes that <strong>there is exactly a single leap second ever</strong>.</p>
|
||
<p>Panics on underflow or overflow.
|
||
Use <a href="#method.checked_sub_signed"><code>NaiveDateTime::checked_sub_signed</code></a> to detect that.</p>
|
||
<h1 id="example-5" class="section-header"><a href="#example-5">Example</a></h1>
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">chrono</span>::<span class="ident">NaiveDate</span>;
|
||
<span class="kw">use</span> <span class="ident">time</span>::<span class="ident">Duration</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">from_ymd</span> <span class="op">=</span> <span class="ident">NaiveDate</span>::<span class="ident">from_ymd</span>;
|
||
|
||
<span class="kw">let</span> <span class="ident">d</span> <span class="op">=</span> <span class="ident">from_ymd</span>(<span class="number">2016</span>, <span class="number">7</span>, <span class="number">8</span>);
|
||
<span class="kw">let</span> <span class="ident">hms</span> <span class="op">=</span> <span class="op">|</span><span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span><span class="op">|</span> <span class="ident">d</span>.<span class="ident">and_hms</span>(<span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">1</span>), <span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="op">-</span><span class="number">1</span>), <span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">3600</span> <span class="op">+</span> <span class="number">60</span>), <span class="ident">hms</span>(<span class="number">2</span>, <span class="number">4</span>, <span class="number">7</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">86_400</span>),
|
||
<span class="ident">from_ymd</span>(<span class="number">2016</span>, <span class="number">7</span>, <span class="number">7</span>).<span class="ident">and_hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">365</span>),
|
||
<span class="ident">from_ymd</span>(<span class="number">2015</span>, <span class="number">7</span>, <span class="number">9</span>).<span class="ident">and_hms</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>));
|
||
|
||
<span class="kw">let</span> <span class="ident">hmsm</span> <span class="op">=</span> <span class="op">|</span><span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span>, <span class="ident">milli</span><span class="op">|</span> <span class="ident">d</span>.<span class="ident">and_hms_milli</span>(<span class="ident">h</span>, <span class="ident">m</span>, <span class="ident">s</span>, <span class="ident">milli</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">450</span>) <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">670</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">780</span>));</pre>
|
||
<p>Leap seconds are handled,
|
||
but the subtraction assumes that it is the only leap second happened.</p>
|
||
|
||
<pre class="rust rust-example-rendered">
|
||
<span class="kw">let</span> <span class="ident">leap</span> <span class="op">=</span> <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">zero</span>(), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">200</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">1_100</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">milliseconds</span>(<span class="number">500</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">59</span>, <span class="number">800</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="number">60</span>), <span class="ident">hmsm</span>(<span class="number">3</span>, <span class="number">5</span>, <span class="number">0</span>, <span class="number">300</span>));
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">leap</span> <span class="op">-</span> <span class="ident">Duration</span>::<span class="ident">days</span>(<span class="number">1</span>),
|
||
<span class="ident">from_ymd</span>(<span class="number">2016</span>, <span class="number">7</span>, <span class="number">7</span>).<span class="ident">and_hms_milli</span>(<span class="number">3</span>, <span class="number">6</span>, <span class="number">0</span>, <span class="number">300</span>));</pre>
|
||
</div><div class='impl-items'><h4 id='associatedtype.Output-16' class="type"><span id='Output.t-16' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-6' class="method"><span id='sub.v-6' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1297-1299' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-SubAssign%3COldDuration%3E-2' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html" title="trait core::ops::arith::SubAssign">SubAssign</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/naive/struct.NaiveDateTime.html" title="struct chrono::naive::NaiveDateTime">NaiveDateTime</a></code><a href='#impl-SubAssign%3COldDuration%3E-2' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1302-1307' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.sub_assign-2' class="method"><span id='sub_assign.v-2' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.SubAssign.html#tymethod.sub_assign' class='fnname'>sub_assign</a>(&mut self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/naive/datetime.rs.html#1304-1306' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-=</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3COldDuration%3E-3' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl<Tz: <a class="trait" href="../chrono/offset/trait.TimeZone.html" title="trait chrono::offset::TimeZone">TimeZone</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/struct.Date.html" title="struct chrono::Date">Date</a><Tz></code><a href='#impl-Add%3COldDuration%3E-3' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/date.rs.html#345-352' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-17' class="type"><span id='Output.t-17' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Date.html" title="struct chrono::Date">Date</a><Tz></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-7' class="method"><span id='add.v-7' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/struct.Date.html" title="struct chrono::Date">Date</a><Tz></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/date.rs.html#349-351' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3COldDuration%3E-3' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl<Tz: <a class="trait" href="../chrono/offset/trait.TimeZone.html" title="trait chrono::offset::TimeZone">TimeZone</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/struct.Date.html" title="struct chrono::Date">Date</a><Tz></code><a href='#impl-Sub%3COldDuration%3E-3' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/date.rs.html#354-361' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-18' class="type"><span id='Output.t-18' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.Date.html" title="struct chrono::Date">Date</a><Tz></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-7' class="method"><span id='sub.v-7' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/struct.Date.html" title="struct chrono::Date">Date</a><Tz></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/date.rs.html#358-360' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div><h3 id='impl-Add%3COldDuration%3E-4' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl<Tz: <a class="trait" href="../chrono/offset/trait.TimeZone.html" title="trait chrono::offset::TimeZone">TimeZone</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/struct.DateTime.html" title="struct chrono::DateTime">DateTime</a><Tz></code><a href='#impl-Add%3COldDuration%3E-4' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/datetime.rs.html#496-503' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-19' class="type"><span id='Output.t-19' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.DateTime.html" title="struct chrono::DateTime">DateTime</a><Tz></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>+</code> operator.</p>
|
||
</div><h4 id='method.add-8' class="method"><span id='add.v-8' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html#tymethod.add' class='fnname'>add</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/struct.DateTime.html" title="struct chrono::DateTime">DateTime</a><Tz></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/datetime.rs.html#500-502' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>+</code> operation.</p>
|
||
</div></div><h3 id='impl-Sub%3COldDuration%3E-4' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl<Tz: <a class="trait" href="../chrono/offset/trait.TimeZone.html" title="trait chrono::offset::TimeZone">TimeZone</a>> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>> for <a class="struct" href="../chrono/struct.DateTime.html" title="struct chrono::DateTime">DateTime</a><Tz></code><a href='#impl-Sub%3COldDuration%3E-4' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/datetime.rs.html#505-512' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='associatedtype.Output-20' class="type"><span id='Output.t-20' class='invisible'><code>type <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#associatedtype.Output' class="type">Output</a> = <a class="struct" href="../chrono/struct.DateTime.html" title="struct chrono::DateTime">DateTime</a><Tz></code></span></h4>
|
||
<div class='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
|
||
</div><h4 id='method.sub-8' class="method"><span id='sub.v-8' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html#tymethod.sub' class='fnname'>sub</a>(self, rhs: <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">OldDuration</a>) -> <a class="struct" href="../chrono/struct.DateTime.html" title="struct chrono::DateTime">DateTime</a><Tz></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/chrono/datetime.rs.html#509-511' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Performs the <code>-</code> operation.</p>
|
||
</div></div></div>
|
||
<h2 id='synthetic-implementations' class='small-section-header'>
|
||
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>
|
||
</h2>
|
||
<div id='synthetic-implementations-list'>
|
||
<h3 id='impl-Send' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Send' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../chrono/struct.Duration.html" title="struct chrono::Duration">Duration</a></code><a href='#impl-Sync' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div></div></section>
|
||
<section id='search' class="content hidden"></section>
|
||
|
||
<section class="footer"></section>
|
||
|
||
<aside id="help" class="hidden">
|
||
<div>
|
||
<h1 class="hidden">Help</h1>
|
||
|
||
<div class="shortcuts">
|
||
<h2>Keyboard Shortcuts</h2>
|
||
|
||
<dl>
|
||
<dt><kbd>?</kbd></dt>
|
||
<dd>Show this help dialog</dd>
|
||
<dt><kbd>S</kbd></dt>
|
||
<dd>Focus the search field</dd>
|
||
<dt><kbd>↑</kbd></dt>
|
||
<dd>Move up in search results</dd>
|
||
<dt><kbd>↓</kbd></dt>
|
||
<dd>Move down in search results</dd>
|
||
<dt><kbd>↹</kbd></dt>
|
||
<dd>Switch tab</dd>
|
||
<dt><kbd>⏎</kbd></dt>
|
||
<dd>Go to active search result</dd>
|
||
<dt><kbd>+</kbd></dt>
|
||
<dd>Expand all sections</dd>
|
||
<dt><kbd>-</kbd></dt>
|
||
<dd>Collapse all sections</dd>
|
||
</dl>
|
||
</div>
|
||
|
||
<div class="infos">
|
||
<h2>Search Tricks</h2>
|
||
|
||
<p>
|
||
Prefix searches with a type followed by a colon (e.g.
|
||
<code>fn:</code>) to restrict the search to a given type.
|
||
</p>
|
||
|
||
<p>
|
||
Accepted types are: <code>fn</code>, <code>mod</code>,
|
||
<code>struct</code>, <code>enum</code>,
|
||
<code>trait</code>, <code>type</code>, <code>macro</code>,
|
||
and <code>const</code>.
|
||
</p>
|
||
|
||
<p>
|
||
Search functions by type signature (e.g.
|
||
<code>vec -> usize</code> or <code>* -> vec</code>)
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
|
||
|
||
|
||
<script>
|
||
window.rootPath = "../";
|
||
window.currentCrate = "chrono";
|
||
</script>
|
||
<script src="../main.js"></script>
|
||
<script defer src="../search-index.js"></script>
|
||
</body>
|
||
</html> |