gpt4 book ai didi

ios - 查找当前日期是否在每周范围内

转载 作者:行者123 更新时间:2023-11-28 20:51:32 24 4
gpt4 key购买 nike

我有以下范围:

工作日小时:分钟 --> 工作日小时:分钟

Weekday 是从 1(星期一)到 7(星期日)的整数

例如,给定范围可以是以下内容:

  • 周一 8:00 --> 周五 18:00
  • 星期六 10:00 --> 星期二 10:00
  • 周一 10:00 --> 周一 20:00(周一仅 10 小时)
  • 周一 20:00 --> 周一 10:00(除周一外的整个星期从 10:00 到 20:00)

我正在尝试查找当前日期是否在所选范围内。

我尝试了多种方法,比如从范围创建 NSDates 并比较它们,但它仍然没有通过所有测试。

最佳答案

你可以这样做:

首先根据小时、分钟和工作日创建开始和结束日期。如果开始日期结果在结束日期之后返回 1 周。然后将当前日期与计算的开始日期和结束日期进行比较,看它是否在范围内。

let currentDate = Date()

var startDate = dateBySetting(hour: 8, minute: 0, weekday: 1, of: currentDate)
let endDate = dateBySetting(hour: 9, minute: 0, weekday: 5, of: currentDate)

// If start date results after end date remove a week from the start
if startDate > endDate {
startDate = Calendar.current.date(byAdding: .weekOfYear, value: -1, to: startDate) ?? startDate
}

let dateIsInRange = startDate <= currentDate && currentDate <= endDate

func dateBySetting(hour: Int, minute: Int, weekday: Int, of date: Date) -> Date {
let calendar = Calendar.current
var date = calendar.date(bySettingHour: hour, minute: minute, second: 0, of: date) ?? date
date = calendar.date(bySetting: .weekday, value: weekday, of: date) ?? date
return date
}

关于ios - 查找当前日期是否在每周范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57886454/

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