【发布时间】:2015-04-13 16:59:20
【问题描述】:
我想在某个日期将其工作日更改为另一天,同时用户执行一些操作。
当我将工作日更改为另一天/天时,结果 NSDate 保持在当月的同一天,所以如果我将 dayweek 设置为 5,13.4.15 将保持不变。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calendar components:(NSCalendarUnitWeekday|NSCalendarUnitSecond|NSCalendarUnitMonth|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitYear|NSCalendarUnitDay) fromDate:lastdate];
[dateComponents setWeekday:currentDay]; //set it to numbers from 0 to 7
NSDate *date = [calendar dateFromComponents:dateComponents];
lastdate=date;
NSLog(@"%@",lastdate); //stay the same date of the month although i change the week day .
编辑: 从组件中删除日单位,不会解决问题,但会为新日期创建错误的月份日期:
NSLog(@"%@",lastdate);//gives 14.4.15
//change last date day to the new day
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calendar components:(NSCalendarUnitWeekday|NSCalendarUnitSecond|NSCalendarUnitMonth|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitYear ) fromDate:lastdate];
[dateComponents setWeekday:currentDay];//added one day
NSDate *date = [calendar dateFromComponents:dateComponents];
lastdate=date;
NSLog(@"%@",lastdate); //gives 1.4.15
【问题讨论】:
-
你的权利,它将日期重置为月初。
-
那么您将如何更改工作日以更改整个日期?
标签: ios objective-c