当前位置: 首页 > 面试题库 >

Swift-工作日(按当前位置,由currentCalendar())

公西凯捷
2023-03-14
问题内容

今天是星期三,我有此代码

let calendar:NSCalendar = NSCalendar.currentCalendar()
let dateComps:NSDateComponents = calendar.components(.CalendarUnitWeekday , fromDate: NSDate())
let dayOfWeek:Int = dateComps.weekday

dayOfWeek是4,但是今天是保加利亚一周中的第3天。今天在美国是星期四吗?以及如何确定一周在不同国家和地区开始的时间?在我的iPhone上,语言环境和日历都设置为保加利亚日历和语言环境,它知道该周也是在iMac上从星期一开始的,但是当我执行代码时,它会写成4


问题答案:

对于阳历,weekday属性NSDateComponents始终为1(星期日),2(星期一)等。

NSCalendar.currentCalendar().firstWeekday

给出当前语言环境中第一个工作日的(索引),在美国可能是1,在保加利亚是2。因此

var dayOfWeek = dateComps.weekday + 1 - calendar.firstWeekday
if dayOfWeek <= 0 {
    dayOfWeek += 7
}

是您所在地区的星期几。作为单线:

let dayOfWeek = (dateComps.weekday + 7 - calendar.firstWeekday) % 7 + 1

Swift 3 更新

let calendar = Calendar.current
var dayOfWeek = calendar.component(.weekday, from: Date()) + 1 - calendar.firstWeekday
if dayOfWeek <= 0 {
    dayOfWeek += 7
}


 类似资料:
  • 问题内容: 我正在学习如何使用新的Swift语言(只有Swift,没有Objective-C)。为此,我想用地图()做一个简单的视图。我想查找并更新用户的位置(例如在Apple Map应用程序中)。 我试过了,但是什么也没发生: 请你帮助我好吗? 问题答案: 您必须重写(CLLocationManagerDelegate的一部分)才能在位置管理器检索当前位置时得到通知: 注意:如果目标是iOS 8

  • setCurrentSheetIsFirst(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('hide.xlsx', 'sheet1') // 初始化文件,同时初始化第一张工作表 sheet1 ->header(['sh

  • 在节奏工作流活动中,在迭代多个实体时存储当前光标位置的最佳做法是什么?这将允许工作流在发生故障时从最后一个光标开始。 存储当前光标的正确方法是什么?我们是否应该定期使用当前光标作为新光标继续?

  • 问题内容: 我有一个在工作日(周一至周五)运行的sis软件包。如果我在星期二(background(DB))收到文件,则它需要前一个工作日的日期并进行一些交易。如果我在星期五运行工作,则必须获取星期一日期并处理交易。 我已使用以下查询获取之前的营业日期 如果我执行此查询,我将获得昨天的Transactios的结果。如果我在星期一运行相同的查询,则必须获取星期五的交易而不是星期日。 问题答案: 我更

  • 问题内容: 最近,在使用PyCharm时,我无法在代码中使用相对路径。例如,一个简单的将不起作用- 因此,我确定该文件与正在运行的py文件位于同一级别。PyCharm将返回此错误。 FileNotFoundError:[错误2]没有这样的文件或目录: 在StackOverflow上在线阅读答案后,我尝试了多种选择,包括: 更改为 关闭项目,删除.idea文件夹,使用代码打开该文件夹。 重新安装以及

  • setCurrentSheetHide(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('hide.xlsx', 'sheet1') // 初始化文件,同时初始化第一张工作表 sheet1 ->header(['sheet