首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当日期改变时调用特定的函数

问当日期改变时调用特定的函数
EN

Stack Overflow用户
提问于 2016-09-20 07:01:58
回答 1查看 299关注 0票数 0

更具体地说,我有一个函数(incomeToday),它是将数字相加,然后当日期改变时,我想将当天的收入加到总和中,再除以一个数字(自开始以来的天数-该部分正在工作),这样我就可以看到平均收入pr。日期:

代码语言:javascript
复制
func IncomeToday () -> Double {

    let IncomeInput = Double(IncomeTextField.text!)

    todayIncome = todayIncome + IncomeInput!

    return todayIncome

func TotalIncome () 

    let averageIncome = (totalIncome + IncomeToday())/ Days

    averageIncome.text = "\(averageIncome)"

因此,当日期发生变化(在00:00)时,我希望运行函数TotalIncome()。这是可能的吗?如果是的话,是如何实现的?(我正在用NSDate()想象一些东西,但完全不确定是如何实现的)。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-09-22 17:29:10

这个函数每天被调用一次。只有当日期改变时,才会调用它。在appdelegate中调用此函数。

代码语言:javascript
复制
let defaults = NSUserDefaults.standardUserDefaults()
let date = NSDate()
let frmt = NSDateFormatter()
frmt.dateFormat = "YYYY-MM-dd"
let today = frmt.stringFromDate(date)

if let savedDate = defaults.objectForKey("today")
{
  if self.compareTwoDates(savedDate as! String, secondDate: today) == false {
    // perform calculations
    // this block gets called if the date is changed
  }
} else {
  // perform calculations
  // this block gets called for the first time only.
}
self.defaults.setValue(today, forKey: "today")
// here we save the today's date for next day's comparison

日期比较函数为

代码语言:javascript
复制
func compareTwoDates(firstDate: String, secondDate: String) -> Bool {
  let frmt = NSDateFormatter()
  frmt.dateFormat = "YYYY-MM-dd"
  let date_first = frmt.dateFromString(firstDate)
  let date_second = frmt.dateFromString(secondDate)
  return (date_first?.isEqualToDate(date_second!))!
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39583335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档