Какова логика поиска конечной даты, учитывая, что только выбранный день должен быть засчитан в будний день?

Предположим, какую-то задачу можно выполнить только в понедельник, среду, субботу и воскресенье (4 дня в неделю).

Если бы я добавил задачу к дате, например, 3 ноября, вторник, и упомянул, что выполню задачу за 8 дней. Учитывая, что день начала задачи - вторник, а понедельник уже прошел, поэтому у меня осталось только три дня на этой неделе, какова будет логика, чтобы найти этот день и дату через 8 дней (в день завершения задачи).

Мне нужна эта логика для кода Objective C.


person Alok    schedule 03.11.2015    source источник


Ответы (2)


В соответствии с моим пониманием ваших требований я написал код в PlayGround с помощью swift. Это может вам помочь. (Вам просто нужно преобразовать его в 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("")
}

Я просто использовал компонент даты недели.

person Shardul    schedule 03.11.2015

Привет, я преобразовал приведенный выше код в 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");

}
person Mohammad Sadiq Shaikh    schedule 03.11.2015