2012-10-12 64 views
0
/* string fecha_act = DateTime.Now.ToString("d/MM/yy"); */ 
date_act = "10-12-12" 
string[] splitting = date_act.Split('-'); 

foreach (string split in splitting) 
{ 
    MessageBox.Show(split); 
} 

上述代码显示字符串中的日期。该字符串将被分成三部分。说,我需要将这三部分保存在三个不同的字符串中。保存以3个不同字符串分割的字符串的部分

string day_act; 
string month_act; 
string year_act; 

我试过用计数器和开关来做,但它不起作用。 有什么建议吗?

回答

3

这不工作?这很直接,我怀疑你已经尝试过了。

day_act = separando[0]; 
month_act = separando[1]; 
year_act = separando[2]; 

编辑

所以,你想其他方法来Split?这里有一些:

  • 使用DateTime.Parse方法的变化(如在其他的答案中提到)。

  • 使用正则表达式。

    var match = Regex.Match(date, @"(?<day>\d+)-(?<month>\d+)-(?<year>\d+)"); 
    day_act = match.Groups["day"].Value; 
    month_act = match.Groups["month"].Value; 
    year_act = match.Groups["year"].Value; 
    
+0

是的,我已经试过了。但我正在寻找这样做,并不意味着使用字符串数组。 – SealCuadrado

7
string day_act; 
string month_act; 
string year_act; 

string[] separando = date_act.Split('-'); 

day_act = separando[0]; 
month_act = separando[1]; 
year_act = separando[2]; 

或者,更好,让自己真正的约会对象:

string date_act = "10-12-12"; 
var foo = DateTime.ParseExact(date_act, "MM-dd-yy", null); 

然后你可以看一下像foo.Dayfoo.Month性能。

+0

是的。为什么在'DateTime'为我们做的时候重新发明轮子? –

+0

@ OlivierJacot-Descombes'DateTime'对象为我的汽车保险节省了数百美元。 –

+0

第一批代码中的日期是用DateTime进行的:string fecha_act = DateTime.Now.ToString(“d/MM/yy”);' – SealCuadrado

0

这两个答案都解决了我所问的问题,但为了明确地解决我的问题,我选择了一个不意味着使用拆分的替代解决方案。在这种情况下,是一个子串。

day_act = date_act.Substring(0,2); 
month_act = date_act.Substring(3,2); 
year_act = date_act.Substring(6,2);