Ios 发现不同的时间

Ios 发现不同的时间,ios,objective-c,iphone,nsdate,Ios,Objective C,Iphone,Nsdate,我有两个小时和分钟: 这次是从用户那里得到的。这就是你的开始时间和结束时间 1) 10:00 AM 2) 06:00 PM 现在我必须找到用户工作的总时间。意思是说它会让人抓狂 总时间:8:00 我怎么得到它 我正在目标C中定义此代码。我认为它将帮助您 NSString *time1 = @"10.00 pm"; NSString *time2 = @"06.00 pm"; NSDate *date1; NSDate *date2; { NSDateFormatter *formatter

我有两个小时和分钟:

这次是从用户那里得到的。这就是你的开始时间和结束时间

1) 10:00 AM
2) 06:00 PM
现在我必须找到用户工作的总时间。意思是说它会让人抓狂 总时间:8:00

我怎么得到它


我正在目标C中定义此代码。

我认为它将帮助您

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<0?@"-":@"+", ABS(hour), ABS(minute));
NSString*time1=@“晚上10点”;
NSString*time2=@“06.00 pm”;
NSDate*date1;
NSDate*date2;
{
NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init];
[格式化程序setDateFormat:@“hh.mm a”];
date1=[formatter dateFromString:time1];
date2=[formatter dateFromString:time2];
[格式化程序发布];
}
NSTimeInterval interval=[date1 timeIntervalSinceDate:date2]//[日期1时间间隔1970]-[日期2时间间隔1970];
整小时=间隔/3600;
整数分钟=(整数)间隔%3600/60;
NSLog(@“%@%dh%dm”,间隔像这样试试

let calendar = NSCalendar.current

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

-(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"]);

详细说明您的问题?如何获得指定的时间?无需说明原因,但我更新了我的问题。@KKRocksalt虽然是目标c,但10和18之间的差异仍然是8,而不是9。是的,已更新。可能重复了什么是时间间隔1970]-[date2 TimeIntervalence1970]?