【问题标题】:Find different between hours发现小时之间的不同
【发布时间】:2017-04-27 10:07:13
【问题描述】:

我有两个小时和分钟:

我从用户那里得到了这个时间。那你的开始时间和结束时间是什么。

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

现在我必须找到用户工作的总时间。意味着它获取 总时间:8:00

我如何获得它?

我正在用 Objective C 编写这段代码。

【问题讨论】:

  • 详细说明您的问题?如何超过你指定的时间?
  • 不需要说明来自哪里的理由,但我更新了我的问题。 @KKRocks
  • 虽然是objective c,但是10和18的差还是8,不是9。
  • 是的,更新了。谢谢

标签: ios objective-c iphone nsdate


【解决方案1】:

我想它会对你有所帮助。

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));

【讨论】:

  • 什么是 timeIntervalSince1970] - [date2 timeIntervalSince1970]; ?
【解决方案2】:

这样试试吧!

let calendar = NSCalendar.current

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

【讨论】:

    【解决方案3】:

    试试这个功能

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

    【讨论】:

      猜你喜欢
      • 2015-03-13
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2014-01-25
      相关资源
      最近更新 更多