假設某些任務只能在星期一,星期三,星期六和星期日(每週4天)完成。如果只考慮選定的日期,找到最終日期的邏輯是在一個工作日內計算的?
如果我在日期即11月3日星期二添加了任務,並提到我將在8天內完成任務。考慮到任務開始日是星期二,星期一已經過去了,所以本週我只剩下三天,那麼在8天后(任務完成日)找到那天和那天的邏輯是什麼。
我需要這個邏輯用於Objective C代碼。
假設某些任務只能在星期一,星期三,星期六和星期日(每週4天)完成。如果只考慮選定的日期,找到最終日期的邏輯是在一個工作日內計算的?
如果我在日期即11月3日星期二添加了任務,並提到我將在8天內完成任務。考慮到任務開始日是星期二,星期一已經過去了,所以本週我只剩下三天,那麼在8天后(任務完成日)找到那天和那天的邏輯是什麼。
我需要這個邏輯用於Objective C代碼。
根據我對您的要求的理解,我用Swift編寫了一些PlayGround中的代碼。它可能會幫助你。 (你只需要將它轉換爲Objective-C)
let df = NSDateFormatter()
df.dateFormat = "dd-MM-yyyy"
let dateToCheck = df.dateFromString("8-11-2015")
let comp = NSCalendar.currentCalendar().components(NSCalendarUnit.Weekday, fromDate: dateToCheck!)
// Monday == 2 , Wednesday == 4, Saturday = 7 and Sunday = 1
switch(comp.weekday) {
case 2,3:
print("3 Day Left")
case 4,5,6:
print("2 Day Left")
case 7:
print("1 Day Left")
case 1:
print("Last Day Left")
default:
print("")
}
我剛剛使用了日期組件的工作日。
嗨,我將上面的代碼轉換爲Objective-C。
NSDateFormatter *df = [[NSDateFormatter alloc]init];
df.dateFormat = @"dd-MM-yyyy";
NSDate *dateToCheck = [df dateFromString:@"8-11-2015"];
NSDateComponents *comp = [[NSCalendar currentCalendar]components:NSCalendarUnitWeekday fromDate:dateToCheck];
// Monday == 2 , Wednesday == 4, Saturday = 7 and Sunday = 8
if (comp.weekday == 2 || comp.weekday == 3) {
NSLog(@"3 Day Left");
}else if (comp.weekday == 4 || comp.weekday == 5 || comp.weekday == 6){
NSLog(@"2 Day Left");
}else if (comp.weekday == 7 || comp.weekday == 1){
NSLog(@"1 Day Left");
}else if (comp.weekday == 1){
NSLog(@"Last Day Left");
}
Good work Shardul –