Apa logika untuk mencari tanggal akhir mengingat hanya hari terpilih yang dihitung dalam satu hari kerja?

Misalkan suatu tugas hanya dapat diselesaikan pada hari Senin, Rabu, Sabtu dan Minggu (4 hari seminggu).

Jika saya menambahkan tugas pada tanggal yaitu 3 November, Selasa dan disebutkan bahwa saya akan menyelesaikan tugas dalam 8 hari. Mengingat hari awal tugas adalah hari Selasa, dan hari Senin sudah lewat jadi saya hanya menyisakan tiga hari dalam minggu ini, logika apa untuk menemukan hari dan tanggal itu setelah 8 hari (pada hari penyelesaian tugas).

Saya memerlukan logika ini untuk kode Objective C.


person Alok    schedule 03.11.2015    source sumber


Jawaban (2)


Sesuai pemahaman saya tentang kebutuhan Anda, saya menulis beberapa kode di PlayGround dengan cepat. Ini mungkin membantu Anda. (Anda hanya perlu mengonversinya di 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("")
}

Saya hanya menggunakan komponen tanggal hari kerja.

person Shardul    schedule 03.11.2015

Hai, saya mengonversi kode di atas ke 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