[英]Set ListBox item data format c#
抱歉,由於我的英語不好,標題使您感到困惑。 我有一個列表框,其中包含許多具有時間格式的項目(例如:00:02:22:33)我想將此時間格式轉換為分鍾
For example: 00:02:22:33 -> 02 hours = 120 minutes
33 seconds = 33/60 = 0.55 minutes
So result is 120+22+0.55 = 142.55
我正在嘗試編寫類似的方法:
public static void Timeconvert(ListBox l)
{
foreach (var item in l.Items)
{
int x, int y, int z; //It just to show you my thought
if(item.format = 00:x:y:z)
{
int result = x*60 +y + z/60 ;
item = result.Tostring();
}
}
}
我是C#的新手,所以我盡可能詳細地解釋了,所以請幫助我:(
只需將字符串解析為時間跨度並使用TotalMinutes
屬性。
var time = TimeSpan.Parse("00:02:22:33");
var convertedToMinutes = time.TotalMinutes; //Returns 142.55
這將更新您的列表項
for (int i = 0; i < listBox1.Items.Count; i++)
{
TimeSpan time = TimeSpan.Parse(listBox1.Items[i].ToString());
listBox1.Items[i] = time.TotalMinutes;
}
另外, TryParse()
可用於處理格式錯誤的字符串: if (TimeSpan.TryParse(listBox1.Items[i].ToString(), out time)) { listBox1.Items[i] = time.TotalMinutes; }
if (TimeSpan.TryParse(listBox1.Items[i].ToString(), out time)) { listBox1.Items[i] = time.TotalMinutes; }
您可以嘗試以下操作:
var regex = new System.Text.RegularExpressions.Regex(@"00:\d{2}:\d{2}:\d{2}");
foreach (var item in l.Items)
{
if (regex.IsMatch(item))
{
item = TimeSpan.Parse(item).TotalMinutes.ToString();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.