因此,我正在製作一個應用程序,記錄每天你吃多少卡路里/蛋白質等,然後你可以比較後讓我們說1周平均每天你吃的很多。 一切工作都很完美,它只是從開始會話的確切時間到檢查整體統計的確切時間。在這裏,我將展示一些代碼,我使用此功能工作:檢查兩個NSDate值之間有多少天(只使用00.00而不是正好是當前時間)
這裏是代碼保存起始日期在第一視圖:
let currentDate = NSDate()
let defaults5 = NSUserDefaults.standardUserDefaults()
defaults5.setObject(currentDate, forKey: "startDay")
這裏是檢查結束日期和比較碼日期,看看它已經過了多少天(這是另一個視圖):
let currentDate = NSDate()
var startDay = NSDate()
var totalDays = Int()
let defaults1 = NSUserDefaults.standardUserDefaults()
if let search1 = defaults1.objectForKey("startDay")
{
startDay = search1 as! NSDate
}else{
print("there is no start date")
}
func daysBetweenDate(startDate: NSDate, endDate: NSDate) -> Int
{
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Day], fromDate: startDate, toDate: endDate, options: [])
return components.day
}
totalDays = daysBetweenDate(startDay, endDate: currentDate) + 1
dayLabel.text = String(totalDays)
因此,在這種情況下,DayLabel將顯示它是開始日期和的currentdate(+1)之間有多少天,但我想這忽略了幾個小時,例如,如果我在星期二開始會話16.00,並且我在星期三檢查了15.00星期五它仍然會計爲0天,因爲它只通過了23小時,我希望它每天都以00.00開始startDay。
可能重複的[兩個NSDates之間的天數](http://stackoverflow.com/questions/4739483/number-of-days-between-two-nsdates) – vadian