Подтвердить что ты не робот

Преобразование минут в полный рабочий день С#

Мне нужно преобразовать 1815 минут в 30:15 (30 часов и 15 минут)

Есть ли простой способ сделать это, что мне не хватает?

4b9b3361

Ответ 1

Используйте TimeSpan.FromMinutes:

var result = TimeSpan.FromMinutes(1815);

Это даст вам объект, который вы можете использовать по-разному.
Например:

var hours = (int)result.TotalHours;
var minutes = result.Minutes;

Ответ 2

вы можете использовать эту функцию


//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);

Ответ 3

Попробуйте TimeSpan.FromMinutes(minutes), это даст вам TimeSpan, после чего вы сможете проверить свойства TimeSpan.Hours и TimeSpan.Minutes.

Ответ 4

        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();

Ответ 5

Вы можете использовать эту функцию для получения нужной строки

  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";
}

Ответ 6

В бритве эта строчка разрешила мою же ситуацию

@TimeSpan.FromMinutes(@landing.Duration).Hours @R.Hour @TimeSpan.FromMinutes(@landing.Duration).Minutes @R.Minute

Вывод с файлом ресурса дал форматированный и культурный результат, как показано ниже

2 ч 55 м => английский

2 sa 55 dk => турецкий

2 часа 55 минут => итальянский