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

Iphone 如何将数字转换为小时和分钟?,iphone,time,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 s

前几天我得到了正确计算的帮助,但我遇到了如何将其实现为代码的障碍

-(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];
  }
-(iAction)完成:(id)发送方{
int结果=([startHours.text intValue]*60)+[startMinutes.text intValue])-
(([finishHours.text intValue]*60)+[finishMinutes.text intValue]);
totalHours.text=[NSString stringWithFormat:@“%i”,结果/60];
如果(结果<0){
totalHours.text=[NSString stringWithFormat:@“%d”,结果*-1];
}

上面是代码。但是,在文本字段中,它显示为总分钟数。我想将其转换为总小时数和总分钟数(10.30)。如何在代码中执行此操作?

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

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

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

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

尝试将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];
  }
-(iAction)完成:(id)发送方{
浮点结果=([startHours.text intValue]*60)+[startMinutes.text intValue])-
(([finishHours.text intValue]*60)+[finishMinutes.text intValue]);
totalHours.text=[NSString stringWithFormat:@“%2.2f”,结果/60];
如果(结果<0){
totalHours.text=[NSString stringWithFormat:@“%2.2f”,结果*-1];
}

尝试将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];
  }
-(iAction)完成:(id)发送方{
浮点结果=([startHours.text intValue]*60)+[startMinutes.text intValue])-
(([finishHours.text intValue]*60)+[finishMinutes.text intValue]);
totalHours.text=[NSString stringWithFormat:@“%2.2f”,结果/60];
如果(结果<0){
totalHours.text=[NSString stringWithFormat:@“%2.2f”,结果*-1];
}

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

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

此外,我如何将夜班计算为12小时以上?我如何将夜班计算为12小时以上?我如何将夜班计算为13小时,将夜班计算为2小时。我得到了11小时,这是错误的,应该是15小时。如果您的时间间隔在一个应用程序会话内,并且开始时间为1小时始终少于完成时间,只要在计算零件之前进行符号检查(结果<0)结果+=12*60;我如何考虑夜班?因为开始时间等于13小时,结束时间等于2小时。我得到了11小时,这是错误的,应该是15小时。如果您在一个应用程序会话内的时间间隔和开始时间总是小于结束时间,只要在计算部分之前进行符号检查,如果(结果<0)结果+=12*60;