gpt4 book ai didi

swift - 如何编写一个快速函数来计算没有条目的天数?

转载 作者:行者123 更新时间:2023-11-30 11:10:24 24 4
gpt4 key购买 nike

我正在使用 NSManagedObjects 开发一个项目,其中每个对象都是一个具有值和日期的用户条目。该应用程序将运行用户输入值的 7 天平均值和 14 天平均值。我已经将其设置为执行适当的获取请求、对值求和并分别除以 7 和 14。然而,我意识到,当用户第一次开始使用该应用程序时,这些运行平均值会非常具有误导性,因此我想设置一个函数来评估过去 7 和 14 天内没有的天数任何条目,以便我可以在这些计算中从分母中减去该值。我是一个相对初学者,但我很难理解如何编写这个函数,所以任何帮助将不胜感激。提前致谢。

编辑回复 Drekka:

我正在使用的代码如下。我对这个广泛的问题感到抱歉,但我不太清楚从哪里开始为我想要做的事情构建一个循环函数,并且我在搜索中无法提出任何示例或类似物我已经搞定了。基本上,我正在提取过去 7 天内输入的所有值,但我正在尝试找出一种方法来评估在此获取请求的范围内未输入任何值的天数。

func sevenDayFetch() {
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }

let managedContext = appDelegate.persistentContainer.viewContext

let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Entry")

var calendar = Calendar.current
calendar.timeZone = NSTimeZone.local

let sevenDaysAgo = calendar.date(byAdding: .day, value: -7, to: Date())
let dateFrom = calendar.startOfDay(for: sevenDaysAgo!)
let dateTo = Date()

let fromPredicate = NSPredicate(format: "entryDate > %@", dateFrom as NSDate)
let toPredicate = NSPredicate(format: "entryDate <= %@", dateTo as NSDate)
let sevenDayPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [fromPredicate, toPredicate])
fetchRequest.predicate = sevenDayPredicate

do {
entryArray = try managedContext.fetch(fetchRequest)
var sevenDayArray: [Int] = []
for i in entryArray as [NSManagedObject] {
sevenDayArray.append(i.value(forKey: "Value") as! Int)
}
let sevenDaySum = sevenDayArray.reduce(0, +)
let sevenDayAverage = sevenDaySum/7

sevenDayAverageLabel.text = String(sevenDayAverage)

最佳答案

我发现将应用程序的安装日期保存在 UserDefaults 中很有帮助。

 func installDate() -> NSDate {
var installDate: Date
if let date = UserDefaults.standard.object(forKey: UserDefaultsKeys.dateInstalled) as? Date {
installDate = date
} else {
installDate = Date()
UserDefaults.standard.set(installDate, forKey: UserDefaultsKeys.dateInstalled)
}
return installDate
}

核心数据不太适合存储单个全局值。并且您无法从核心数据推断安装日期;没有日期值并不意味着当时没有安装。

一旦您知道安装日期,如果少于 14 或 7 天,您就可以调整计算和 UI。

关于swift - 如何编写一个快速函数来计算没有条目的天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52249988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com