转换时间字符串字符串结束 [英] String terminator for converting Time Strings
本文介绍了转换时间字符串字符串结束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像
一个字符串数组 第[I]
在这个数组,值是像
00hr:00分17sec
00hr:03min:18秒
00hr:05min:25秒
01hr:39分钟:44sec
现在我需要另一个字符串数组像
谢胜利[J]。
17sec前
3分钟前
5分钟前
1小时前
我怎么能先转换成字符串数组秒字符串数组?
解决方案
- 解析字符串成组件;可能通过的位置,可能与
解析
,可能与正则表达式 - 决定你想要什么规则,每个输出
- 使用它
例如:
静态字符串SimplifyTime(字符串值)
{
VAR匹配= Regex.Match(价值([0-9] {2})小时:([0-9] {2})分:([0-9] {2})SEC);
如果(match.Success!)的返回值;
INT VAL = int.Parse(match.Groups [1] .value的,CultureInfo.InvariantCulture);
如果(VAL大于0)返回VAL +小时前;
VAL = int.Parse(match.Groups [2]。价值,CultureInfo.InvariantCulture);
如果(VAL大于0)返回VAL +分钟前;
VAL = int.Parse(match.Groups [3]。价值,CultureInfo.InvariantCulture);
返回VAL +秒钟前;
}
静态无效的主要()
{
字符串[]值= {
00hr:00分17sec
00hr:03min:18秒,
00hr:05min:25秒,
01hr:39分钟:44sec
};
VAR转换= Array.ConvertAll(值,SimplifyTime);
}
I have a String Array like
First[i]
In this array, the values are Like
"00hr:00min:17sec"
"00hr:03min:18sec"
"00hr:05min:25sec"
"01hr:39min:44sec"
Now I take another string array like
Secound[j]
"17sec Ago"
"3min Ago"
"5min Ago"
"1hr Ago"
How can I convert first string array to seconds string array?
解决方案
- parse the string into components; possibly by position, possibly with
Parse
, possibly with regex - decide what rules you want for each output
- use it
For example:
static string SimplifyTime(string value)
{
var match = Regex.Match(value, "([0-9]{2})hr:([0-9]{2})min:([0-9]{2})sec");
if (!match.Success) return value;
int val = int.Parse(match.Groups[1].Value, CultureInfo.InvariantCulture);
if (val > 0) return val + "hr Ago";
val = int.Parse(match.Groups[2].Value, CultureInfo.InvariantCulture);
if (val > 0) return val + "min Ago";
val = int.Parse(match.Groups[3].Value, CultureInfo.InvariantCulture);
return val + "sec Ago";
}
static void Main()
{
string[] values = {
"00hr:00min:17sec",
"00hr:03min:18sec",
"00hr:05min:25sec",
"01hr:39min:44sec"
};
var converted = Array.ConvertAll(values, SimplifyTime);
}
这篇关于转换时间字符串字符串结束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文