Я работаю над приложением ios в swift
, и у меня есть ползунок с 7 вариантами. Каждый вариант представляет конкретную дату.как я могу рассчитать конкретные даты в Swift (используя NSDate)
Пока мой код выглядит следующим образом:
func convertValueToDate(value: Float) -> NSDate{
var currentDate:NSDate = NSDate()
switch(value){
case 1:
print("5 years ago")
return NSDate()
case 2:
print("one year ago")
return NSDate()
case 3:
print("six months ago")
return NSDate()
case 4:
print("one month ago")
return NSDate()
case 5:
print("one week ago")
return NSDate()
case 6:
print("yesterday")
return NSDate()
case 7:
print("today")
return NSDate()
default:
print("default date")
return NSDate()
}
}
, как вы можете видеть выше - напечатать в консоли, что я хочу вернуться. Но вместо печати я хочу вернуть эти даты в формате NSDate
. Я не знаю, как рассчитать время каждого варианта, потому что я хочу иметь час 0:00:01 AM
каждый день. Так, например. когда пользователь ставит номер 7
Я хочу вернуть ему точную дату вчерашнего 0:00:01 AM
. Когда пользователь выбирает номер 5
Я хочу дать ему дату неделю назад со временем 0:00:01 AM
и так далее. Как я могу рассчитать его, чтобы эта функция всегда возвращала мне время 0:00:01 AM
и рассчитанную дату?
Спасибо за ваш ответ! Точно так же метод 'startOfDayForDate' фактически приносит мне« 0:00:01 AM »данного дня? Я сделал это для теста: 'print (now) print (Cal.iso8601.startOfDayForDate (сейчас))' и напечатал два значения: '2016-09-14 22:34:07 + 0000' и' 2016-09- 14 22:00:00 + 0000' почему второе значение - '22: 00: 00' вместо' 0: 00: 01'? – user3766930
Зачем вам нужна 1 секунда? дата правильная, не беспокойтесь о дате печати UTC время –
Я думал, что требуется 1 секунда, так как мне нужно начало дня, а '0: 00: 00' относится к предыдущему дню и' 0:00: 01' к текущему – user3766930