Bagaimana cara mengurangi satu tahun dari datetime?

86

Bagaimana cara mengurangi satu tahun dari waktu saat ini menggunakan c #?

Jango
sumber

Jawaban:

189
var myDate = DateTime.Now;
var newDate = myDate.AddYears(-1);
D'Arcy Rittich
sumber
Terima kasih. Satu sama lain pertanyaan terkait - bagaimana cara mengurangi minggu?
Jango
40
DateTime oneYearAgoToday = DateTime.Now.AddYears(-1);

Mengurangi seminggu:

DateTime weekago = DateTime.Now.AddDays(-7);
kemiller2002
sumber
8

Mungkin perlu dicatat bahwa jawaban yang diterima dapat menyesuaikan tanggal baik 365 hari atau 366 hari karena tahun kabisat (mendapat tanggal untuk hari yang sama di bulan satu tahun lalu, dengan pengecualian 29 Februari di mana ia mengembalikan 28 Februari).

Dalam sebagian besar kasus, ini persis seperti yang Anda inginkan, namun jika Anda memperlakukan satu tahun sebagai unit waktu tetap (misalnya tahun Julian ) maka Anda perlu mengurangi dari kedua hari tersebut;

        var oneFullJulianYearAgo = DateTime.Now.AddDays(-365.25);

atau detik;

        var oneFullJulianYearAgo = DateTime.Now.AddSeconds(-31557600);
mark_h
sumber