Мне нужно преобразовать 1815 минут в 30:15 (30 часов и 15 минут)
Есть ли простой способ сделать это, что мне не хватает?
Мне нужно преобразовать 1815 минут в 30:15 (30 часов и 15 минут)
Есть ли простой способ сделать это, что мне не хватает?
Используйте TimeSpan.FromMinutes
:
var result = TimeSpan.FromMinutes(1815);
Это даст вам объект, который вы можете использовать по-разному.
Например:
var hours = (int)result.TotalHours;
var minutes = result.Minutes;
вы можете использовать эту функцию
//minutes to be converted (70minutes = 1:10 hours)
int totalminutes = 70;
//total hours
int hours = 70 / 60;
//total minutes
int minutes = 70 % 60;
//output is 1:10
var time = string.Format("{0} : {1}", hours, minutes);
Попробуйте TimeSpan.FromMinutes(minutes)
, это даст вам TimeSpan
, после чего вы сможете проверить свойства TimeSpan.Hours
и TimeSpan.Minutes
.
DateTime d = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
Console.WriteLine(d.ToLongTimeString());
Console.WriteLine(d.AddMinutes(1815).ToLongTimeString());
Console.ReadLine();
Вы можете использовать эту функцию для получения нужной строки
public string GetTimeString(int durationInMinute)
{
TimeSpan timeSpan = TimeSpan.FromMinutes(durationInMinute);
if(timeSpan.Hours == 1 && timeSpan.Minutes == 1)
return timeSpan.Hours + " Hour and " + timeSpan.Minutes + " Min";
else if (timeSpan.Hours > 1 && timeSpan.Minutes > 1)
return timeSpan.Hours + " Hours and " + timeSpan.Minutes + " Mins";
else if (timeSpan.Hours > 1 && timeSpan.Minutes < 1)
return timeSpan.Hours + " Hours";
else if(timeSpan.Hours < 1 && timeSpan.Minutes > 1)
return timeSpan.Minutes + " Mins";
else if(timeSpan.Hours == 1 && timeSpan.Minutes > 1)
return timeSpan.Hours + " Hour and " + timeSpan.Minutes + " Mins";
else if (timeSpan.Hours == 1 && timeSpan.Minutes == 0)
return timeSpan.Hours + " Hour";
else if (timeSpan.Hours == 0 && timeSpan.Minutes == 1)
return timeSpan.Minutes + " Min";
else
return timeSpan.Hours + " Hours and " + timeSpan.Minutes + " Mins";
}
В бритве эта строчка разрешила мою же ситуацию
@TimeSpan.FromMinutes(@landing.Duration).Hours @R.Hour @TimeSpan.FromMinutes(@landing.Duration).Minutes @R.Minute
Вывод с файлом ресурса дал форматированный и культурный результат, как показано ниже
2 ч 55 м => английский
2 sa 55 dk => турецкий
2 часа 55 минут => итальянский