Sepertinya saya tidak bisa mengurangi 7 hari dari tanggal sekarang. Beginilah cara saya melakukannya:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
SevenDaysAgo mendapatkan nilai yang sama dengan tanggal saat ini.
Tolong bantu.
EDIT: Dalam kode saya, saya lupa mengganti variabel yang mendapatkan tanggal sekarang dengan yang benar. Jadi kode di atas berfungsi.
objective-c
ios
nsdate
Alex Tau
sumber
sumber
[NSDate dateWithTimeIntervalSinceReferenceDate:[NSDate date].timeIntervalSinceReferenceDate - (7*24*60*60)]
- Meskipun tidak menangani perubahan DST.Jawaban:
gunakan metode dateByAddingTimeInterval:
keluaran:
Semoga membantu
sumber
[now dateByAddingDays:-7]
kode:
keluaran:
Dan saya sepenuhnya setuju dengan JeremyP.
BR.
Eugene
sumber
Jika Anda menjalankan setidaknya iOS 8 atau OS X 10.9, ada cara yang lebih bersih:
Atau, dengan Swift 2:
Dan dengan Swift 3 dan yang lebih baru, itu menjadi lebih kompak:
sumber
Cepat 3
sumber
Swift 4.2 - Mutate (Update) Self
Berikut adalah cara lain yang bisa didapat poster asli satu minggu yang lalu jika dia sudah memiliki variabel tanggal (pembaruan / mutasi sendiri).
Pemakaian
atau
sumber
Jawaban dymv bekerja dengan baik. Ini bisa Anda gunakan dengan cepat
Anda bisa menyebutnya dengan
Semoga membantu dan terima kasih untuk dymv
sumber
Solusi Swift 4.2 iOS 11.x Babec , Swift murni
sumber
Ekstensi operator cepat:
Pemakaian
sumber
Versi Swift 3.0+ dari jawaban asli yang diterima
Tanggal (). AddTimeInterval (-7 * 24 * 60 * 60)
Namun, ini hanya menggunakan nilai absolut. Gunakan jawaban kalender mungkin lebih cocok dalam banyak kasus.
sumber
Cepat 3:
Modifikasi jawaban Dov.
Pemakaian:
sumber
numberOfDays
opsional dan kemudian dibuka paksa? Bukankah seharusnya itu hanya menjadi non-opsionalInt
?UNTUK SWIFT 3.0
di sini adalah fucntion, Anda dapat mengurangi hari, bulan, hari dengan hitungan apa pun seperti misalnya di sini, saya telah mengurangi tahun tanggal sistem saat ini dengan 100 tahun, Anda dapat melakukannya untuk hari, bulan juga hanya mengatur penghitung dan menyimpannya di array, Anda dapat array ini di mana saja kemudian func currentTime ()
sumber