var span = System.TimeSpan.FromMinutes(121);
var hours = ((int)span.TotalHours).ToString();
var minutes = span.Minutes.ToString();
Các ToString() là bởi vì bạn hỏi cho các giá trị chuỗi ...
TotalHours là giờ hoàn thành trong TimeSpan, họ có thể có nhiều hơn 24 (trong khi "Giờ" lĩnh vực có tối đa 24)
Ồ, và suy nghĩ thứ hai: Tại sao sử dụng TimeSpan và không tự tính toán? Bởi vì TimeSpan đã được gỡ lỗi & được kiểm tra bởi Microsoft, nó có một giao diện sạch đẹp (xem mã bạn dễ dàng thấy những gì đang xảy ra mà không cần phải theo dõi tính toán) và nó dễ dàng mở rộng đến các giải pháp khác. (Có các đầu vào trong giây Sử dụng TimeSpan.FromSeconds() Muốn những ngày Sử dụng span.TotalDays ...?.?)
Cập nhật:
Tôi chỉ nhận thấy sai lầm trong câu trả lời của tôi: TotalHours lợi nhuận một giá trị phân số của tất cả các giờ, vì vậy chúng tôi phải cắt ngắn nó thành một số nguyên trước khi chuyển đổi nó thành một chuỗi.
Thao tác này sẽ không ghi phút bằng số không. Thêm ToString ("00") nên sửa chữa nó. – Coincoin
@Coincoin: xem ví dụ của OP trong 121 phút. Không cần đệm. –
Sai lầm của tôi. Cảm ơn đã chỉ ra điều đó. – Coincoin