Sha256: abc4953ae5097bc2bab8af98bcbcba86bed167ea932ff771016e342a19af737c

Contents?: true

Size: 843 Bytes

Versions: 213

Compression:

Stored size: 843 Bytes

Contents

module gigasecond;

import std.datetime;
import core.time : seconds;

enum Gigasecond = seconds(10^^9);

DateTime gsAnniversary(in DateTime start) pure {
    return start + Gigasecond;
}

unittest {
    assert(gsAnniversary(DateTime(2011, 4, 25)) == DateTime(2043, 1, 1, 1, 46, 40));
    assert(gsAnniversary(DateTime(1977, 6, 13)) == DateTime(2009, 2, 19, 1, 46, 40));
    assert(gsAnniversary(DateTime(1959, 7, 19)) == DateTime(1991, 3, 27, 1, 46, 40));
    assert(gsAnniversary(DateTime(2015, 1, 24, 22, 0, 0)) == DateTime(2046, 10, 2, 23, 46, 40));
    assert(gsAnniversary(DateTime(2015, 1, 24, 23, 59, 59)) == DateTime(2046, 10, 3, 1, 46, 39));

    //check that it doesn't mutate the argument
    auto d = DateTime(2011, 4, 25);
    assert(gsAnniversary(d) == DateTime(2043, 1, 1, 1, 46, 40));
    assert(d == DateTime(2011, 4, 25));
}

Version data entries

213 entries across 213 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.179 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.178 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.177 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.176 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.175 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.174 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.173 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.172 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.171 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.170 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.169 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.167 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.166 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.165 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.164 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.163 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.162 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.161 tracks/d/exercises/gigasecond/example/gigasecond.d
trackler-2.2.1.160 tracks/d/exercises/gigasecond/example/gigasecond.d