参考预先回答的问题:获取本周的第一天和最后一天
上面的链接中有两个答案。其中一个是理论上的,另一个是名为 PyObjC(Python-Objective C 桥接语言)的语言,快速的 google 搜索确认 PyObjC 不适用于 iPhone SDK。
那么关于这个问题,如何才能将 PyObjC 代码转换为与 iPhone SDK 兼容。
目标:假设今天(周二)19号,周日。是 17 日(本周开始)和周六。 23日是周末。我想要得到像 19/01 - 23/01 这样的字符串 [即周开始(连字符)周结束]
Reference to pre-answered question at: Getting first and last days of current week
There are two answers in the above link. One of them is theoretical and the other is in a language called as PyObjC (Python-Objective C bridge language), and a quick google search confirms that PyObjC does not work with iPhone SDK.
So regarding the question, how is it possible to get the PyObjC code translated to be compatible with iPhone SDK.
Target: Supposing today (Tue.) is 19th, and Sun. was 17th (start of week) and Sat. 23rd is end of week. I want to get a string like 19/01 - 23/01 [i.e. The start of week (hypen) end of week]
发布评论
评论(4)
如果您有
NSDate
,则可以使用当前的NSCalendar
来检索该日期的NSDateComponents
。将NSDateComponents
的weekday
设置为1(一周的第一天),创建一个副本,并将副本的weekday
设置为7(一周的最后一天)。然后使用NSCalendar
将两个NSDateComponents
转换回各自的NSDate
对象,之后您可以使用NSDateFormatter
> 创建您的字符串表示形式。此链接有一个有关如何获取日期的工作日的示例:https://stackoverflow.com/questions/1057349#1057405
If you have an
NSDate
, you can use the currentNSCalendar
to retrieve that date'sNSDateComponents
. Set theNSDateComponents
'sweekday
to 1 (the first day of the week), create a copy, and set the copy'sweekday
to 7 (the last day of the week). Then use theNSCalendar
to convert both theNSDateComponents
back to their respectiveNSDate
objects, after which you can use anNSDateFormatter
to create your string representation.This link has an example about how to get a date's weekday: https://stackoverflow.com/questions/1057349#1057405
这是一些代码,它还检查一周的开始于上个月开始的边缘情况:
编辑:上面的相关代码
Here's some code and it also checks an edge case where the beginning of the week starts in the prior month:
Edit: Relevant code from above
这是我几天前一直在寻找的东西,终于找到了。
NSDate
中有一个方法rangeOfUnit:startDate:interval:forDate:
,并以简单的方式执行此操作。您可以在以下位置查看详细信息:当前周开始和结束日期
This is what I was looking for days ago and finally found. There is a method
rangeOfUnit:startDate:interval:forDate:
inNSDate
and do that in a simple way. You can see detail at:Current Week Start and End Date