2017-04-27 257 views
-1

我有兩個小時和幾分鐘:查找小時之間的差異

我從用戶那裏得到了這個時間。那你的開始時間和結束時間是什麼。

1) 10:00 AM 
2) 06:00 PM 

現在我必須找到用戶總工作時間。意思是取得 總時間:8:00

我該如何得到它?

我定這個代碼在Objective C.

+0

闡述你的問題?如何獲得你指定的時間? – KKRocks

+0

不需要理由,哪裏來自然而我更新了我的問題。 @KKRocks –

+0

雖然是客觀的c,但10和18之間的差異仍然是8,而不是9. – vv01f

回答

0

我認爲這將幫助你。

NSString *time1 = @"10.00 pm"; 
NSString *time2 = @"06.00 pm"; 
NSDate *date1; 
NSDate *date2; 
{ 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"hh.mm a"]; 
    date1 = [formatter dateFromString:time1]; 
    date2 = [formatter dateFromString:time2]; 
    [formatter release]; 
} 
NSTimeInterval interval = [date1 timeIntervalSinceDate: date2]; //[date1 timeIntervalSince1970] - [date2 timeIntervalSince1970]; 
    int hour = interval/3600; 
int minute = (int)interval % 3600/60; 

NSLog(@"%@ %dh %dm", interval<[email protected]"-":@"+", ABS(hour), ABS(minute)); 
+0

什麼是timeIntervalSince1970] - [date2 timeIntervalSince1970]; ? –

0

試試看這樣!

let calendar = NSCalendar.current 

    let datecomponents = calendar.dateComponents([.hour], from: start as Date, to: someDateTime as Date) 
    let hours = datecomponents.hour! 
    print("hours: \(hours)") 
0

試試這個功能

-(NSString *)startTime:(NSString *)startTime AndWithAndTime:(NSString *)endTime{ 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"hh:mm a"]; 
    NSDate *date1 = [formatter dateFromString:startTime]; 
    NSDate *date2 = [formatter dateFromString:endTime]; 
    NSTimeInterval interval = [date2 timeIntervalSinceDate:date1]; 
    int hours = (int)interval/3600;    // integer division to get the hours part 
    int minutes = (interval - (hours*3600))/60; // interval minus hours part (in seconds) divided by 60 yields minutes 
    NSString *timeDiff = [NSString stringWithFormat:@"%d:%02d", hours, minutes]; 
    return timeDiff; 
} 

NSLog(@"%@",[self startTime:@"10:00 AM" AndWithAndTime:@"06:00 PM"]);