简体   繁体   中英

Conversion of TimeSpan to a new variable on HHH: mm

I am downloading the list of times from the database

var listaNadgodzinZPoprzMies = _ecpContext.Karta.Where(x => x.Login == userName && x.Rok == numerRoku && x.Miesiac < numerMiesiaca)
                                                            .Select(b => string.IsNullOrEmpty(b.SaldoNadgodzin) ? TimeSpan.Zero : TimeSpan.Parse(b.SaldoNadgodzin))
                                                            .ToList();

Adds all times

var sumaListaNadgodzinZPoprzMies = listaNadgodzinZPoprzMies.Aggregate(TimeSpan.Zero, (t1, t2) => t1 + t2);

And, I need to convert the number of minutes/ from the variable shown in the image (TimeSpan)

to string to format HHH:mm to other new variable

在此处输入图片说明

I scraped out these two functions some time ago in javascript ( I don't know how to convert them to c # ) (I don't know if it will work and whether it will be useful)

function msToTime(duration) {
    const minutes = Math.floor((duration / (1000 * 60)) % 60), // 3.4 - 3, 3.5 - 3, 3.8 - 3
        hours = Math.floor(duration / (1000 * 60 * 60));
    return twoOrMoreDigits(hours) + ":" + twoOrMoreDigits(minutes);
}

function twoOrMoreDigits(n) {
    return n < 10 ? '0' + n : n; // if (n < 10) { return '0' + n;} else return n;
}

anyone have any idea?

Here is an example:

TimeSpan time = new TimeSpan(200,1,23);

string strTime = $"{((int)time.TotalHours).ToString("D3")}:{time.Minutes.ToString("D2")}";

Console.WriteLine(strTime);

Output:

200:01

You want to format a timespan, you can achieve it by using this code:

var timespan = TimeSpan.FromMinutes(3180);
var result = timespan.ToString("hh:mm");
Console.WriteLine(result);

hh - hour in 24h format with leading zero
mm - minutes with leading zero

You can read more about timespan formatting here: https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-timespan-format-strings

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM