【问题标题】:How do I convert a number to hours and minutes?如何将数字转换为小时和分钟?
【发布时间】:2010-03-09 22:46:13
【问题描述】:

前几天我得到了正确计算方面的帮助,但我遇到了一个关于如何将其实现到代码中的问题。

-(IBAction)done:(id)sender {
  int result = (([startHours.text intValue] * 60) + [startMinutes.text intValue]) - 
  (([finishHours.text intValue] * 60) + [finishMinutes.text intValue]);
  totalHours.text = [NSString stringWithFormat:@"%i", result / 60];
  if (result < 0) { 
    totalHours.text = [NSString stringWithFormat:@"%d", result * -1];
  }

以上是代码。但是,在文本字段中,它显示为总分钟数。我想隐藏它,以便它显示为总小时和分钟(10.30)。我将如何在代码中做到这一点?

【问题讨论】:

    标签: iphone time


    【解决方案1】:

    如果结果是以分钟为单位的时间:

    int minutes = result%60
    int hours = (result - minutes)/60
    totalHours.text = [NSString stringWithFormat:@"%d.%d", hours, minutes];
    

    【讨论】:

    • 另外,如果超过 12 小时,我将如何考虑夜班?
    【解决方案2】:

    Pheelicks 的回答是可以的。只是两个小补充:在计算部分之前处理间隔符号,并使用更常见的时间格式:

      int result = (([startHours.text intValue] * 60) + [startMinutes.text intValue]) - 
      (([finishHours.text intValue] * 60) + [finishMinutes.text intValue]);
    
      int minutes = abs(result)%60
      int hours = (abs(result) - minutes)/60
      totalHours.text = [NSString stringWithFormat:@"%02d:%02d", hours, minutes];
    

    【讨论】:

    • 我如何考虑夜班?如开始时间等于 13 小时,结束时间等于 2 小时。我得到 11 小时,这是错误的,应该是 15 小时。
    • 如果您在一个应用程序会话中的时间间隔和开始时间总是小于完成时间,只需在计算部分之前进行签名检查 if (result
    【解决方案3】:

    尝试将 int 更改为 float。

    -(IBAction)done:(id)sender {
      float result = (([startHours.text intValue] * 60) + [startMinutes.text intValue]) - 
      (([finishHours.text intValue] * 60) + [finishMinutes.text intValue]);
      totalHours.text = [NSString stringWithFormat:@"%2.2f", result / 60];
      if (result < 0) { 
        totalHours.text = [NSString stringWithFormat:@"%2.2f", result * -1];
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2021-02-22
      • 1970-01-01
      相关资源
      最近更新 更多