草庐IT

NSCalendar

全部标签

ios - 如何获取给定周数和年份的第一个和最后一个日期?

我是ios编程的新手,拼命地尝试获取给定一周的第一个和最后一个日期以及引用年份。我尝试构建一个方法,但确实得到了奇怪的日期。+(NSArray*)getStartDateOfWeek:(NSInteger)weekNumberwithYear:(NSInteger)year{NSMutableArray*result=[[NSMutableArrayalloc]init];//WeekStartDateNSCalendar*gregorianStart=[[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];N

ios - iOS 中的水平日历

我使用UIDatePicker作为native控件,还使用了Stackoverflow和github中提到的库。但我想要一个日历View,像图像中那样连续水平滚动几天。请分享您关于实现此功能的可能解决方案的想法/逻辑。谢谢 最佳答案 您可以使用最接近您所需功能的库,并可以根据需要自定义其外观。https://github.com/CapitalGene/objc-CGCalendarView 关于ios-iOS中的水平日历,我们在StackOverflow上找到一个类似的问题:

ios - NSCalendar 的 dateBySettingUnit 方法返回不明显的结果

我的问题是通过NSDateComponents解决的,但是我想了解为什么这个方法如此有效NSDate*today=[NSDatedate];NSLog(@"todayis:%@",today);NSDate*dayChanged=[calendardateBySettingUnit:(NSCalendarUnitDay)value:10ofDate:todayoptions:0];NSLog(@"dayChangedis:%@",dayChanged);NSDate*monthChanged=[calendardateBySettingUnit:(NSCalendarUnitMonth

iphone - NSCalendar dateFromComponents 在使用星期时返回错误值

所以我尝试获取这周的日期范围。当我获取当前日期组件(只有年份和日期)时,这些是值:我注意到近周写有“过时”。曾尝试搜索苹果文档,但一无所获。然后我尝试获取当前日历(或公历,相同值)的NSDate,但我得到的值是:所以周被忽略了。所以我在我的组件中添加了几个月和一个星期,并且有这样的组件:然后我试图让我的约会对象脱离这个,这就是我得到的:现在显然week组件在这里被忽略了。为什么?它被弃用了吗?还是有什么错误? 最佳答案 所以我终于找到了解决方案。如果您只设置工作日,似乎一切都解决了(开始工作):[startDatesetWeekda

ios - 我怎样才能知道 NSDate 是否是工作日?

如何确定NSDate是否为工作日?也就是说,根据用户当前的区域设置和日历设置,是否是周末-所以不硬编码为周一到周五?NSCalendar有一个firstWeekday属性,但这似乎只是一个表象;美国是星期天,英国是星期一。编辑:我不担心假期,我只是希望能够像内置日历应用程序一样为日历的周末添加阴影。 最佳答案 针对iOS8及更高版本的更新:NSCalendar现在包含方法-(BOOL)isDateInWeekend:(NSDate*)date检查某个日期是否属于特定日历和语言环境中的周末。旧答案如果你只需要在周末遮阳,[NSDate

ios - 检测 iOS 应用程序中的日期变化

所以我一直在研究如何在我的iOS应用程序中判断今天是否是新的一天。基本上,我想在新的一天开始后立即将一堆值重置为0。我已经看到我可以使用在午夜发送通知的“UIApplicationSignificantTimeChangeNotification”。但是,如果用户在上午9:00关闭该应用程序并在第二天上午9:00再次打开它,它是否仍会触发?我还看到我可以使用“NSCalendarDayChangedNotification”,据我所知,它具有相同的行为。我唯一担心的是,即使在用户终止应用程序后,其中任何一个都可以检测到一天的变化。理想情况下,我想像这样在viewDidLoad的.m文件

ios - 如何确保线程安全地使用 "NSCalendar currentCalendar"?

根据Apple文档NSCalendarisnotthread-safe.使用staticmethodcurrentCalendar时如何确保线程安全?任何库都可以调用相同的方法。如何锁定访问权限? 最佳答案 你可以使用NSLock。NSLock*lock=[[NSLockalloc]init];和[locklock];//calendar[lockunlock]; 关于ios-如何确保线程安全地使用"NSCalendarcurrentCalendar"?,我们在StackOverflow

objective-c - NSDateComponents 工作日不显示正确的工作日?

我得到了一个NSDate,例如1/6-12(星期五),并试图找出它是星期几。我的一周从星期一开始,所以星期五应该是工作日5。NSCalendar*calendar=[[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];[calendarsetFirstWeekday:2];NSDateComponents*components=[calendarcomponents:NSWeekdayCalendarUnitfromDate:firstOfJulyDate];NSLog(@"weekday%i",compon

ios - NSCalendar dateFromComponents 返回错误日期 2

我想找出一年中第一个星期的日期:NSCalendar*calendar=[NSCalendarcurrentCalendar];NSDateComponents*components=[[NSDateComponentsalloc]init];[componentssetYear:2013];[componentssetMonth:1];[componentssetWeekOfMonth:1];[componentssetWeekday:1];NSDate*newDate=[calendardateFromComponents:components];NSLog(@"%@",newDa

ios - 使用 setDoesRelativeDateFormatting : YES and setDateFormat: with NSDateFormatter

NSDateFormatter对生成诸如“今天”、“明天”、“昨天”等当前语言支持的相关日期有很好的支持。一个很大的优势是所有这些都已经为您本地化了——您不需要翻译字符串。您可以通过以下方式开启此功能:[dateFormattersetDoesRelativeDateFormatting:YES];不利的一面是,这似乎只适用于使用一种预定义格式的实例,例如:[dateFormattersetDateStyle:NSDateFormatterShortStyle];如果您将日期格式化程序设置为使用自定义格式,如下所示:[dateFormattersetDateStyle:@"EEEE"]