如何将数字转换为小时和分钟?

时间:2010-03-09 13:57:58

标签: iphone time

前几天我得到了正确计算方面的帮助,但我已经知道如何将其实现到代码中。

-(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)。我将如何在代码中执行此操作?

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

尝试将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];
  }