Skip to content

Commit 6d59611

Browse files
author
linzhijun
committed
fix
1 parent 8c1a78a commit 6d59611

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

csharp/ToolGood.Algorithm2/MyDate.cs

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Globalization;
23
using System.Text;
34
using System.Text.RegularExpressions;
45

@@ -116,58 +117,59 @@ public MyDate(decimal num)
116117
/// <returns></returns>
117118
public static MyDate Parse(String txt)
118119
{
120+
CultureInfo cultureInfo = CultureInfo.GetCultureInfo("en-US");
119121
String t = txt.Trim();
120122
var m = Regex.Match(t, "^(\\d{4})-(11|12|0?\\d)-(30|31|[012]?\\d) ([01]\\d?|2[1234]):([012345]?\\d):([012345]?\\d)$", RegexOptions.Compiled);
121123
if (m.Success) {
122124
MyDate date = new MyDate();
123-
date.Year = int.Parse(m.Groups[(1)].Value);
124-
date.Month = int.Parse(m.Groups[(2)].Value);
125-
date.Day = int.Parse(m.Groups[(3)].Value);
126-
date.Hour = int.Parse(m.Groups[(4)].Value);
127-
date.Minute = int.Parse(m.Groups[(5)].Value);
128-
date.Second = int.Parse(m.Groups[(6)].Value);
125+
date.Year = int.Parse(m.Groups[(1)].Value, cultureInfo);
126+
date.Month = int.Parse(m.Groups[(2)].Value, cultureInfo);
127+
date.Day = int.Parse(m.Groups[(3)].Value, cultureInfo);
128+
date.Hour = int.Parse(m.Groups[(4)].Value, cultureInfo);
129+
date.Minute = int.Parse(m.Groups[(5)].Value, cultureInfo);
130+
date.Second = int.Parse(m.Groups[(6)].Value, cultureInfo);
129131
return date;
130132
}
131133
m = Regex.Match(t, "^(\\d{4})-(11|12|0?\\d)-(30|31|[012]?\\d) ([01]\\d?|2[1234]):([012345]?\\d)$", RegexOptions.Compiled);
132134
if (m.Success) {
133135
MyDate date = new MyDate();
134-
date.Year = int.Parse(m.Groups[(1)].Value);
135-
date.Month = int.Parse(m.Groups[(2)].Value);
136-
date.Day = int.Parse(m.Groups[(3)].Value);
137-
date.Hour = int.Parse(m.Groups[(4)].Value);
138-
date.Minute = int.Parse(m.Groups[(5)].Value);
136+
date.Year = int.Parse(m.Groups[(1)].Value, cultureInfo);
137+
date.Month = int.Parse(m.Groups[(2)].Value, cultureInfo);
138+
date.Day = int.Parse(m.Groups[(3)].Value, cultureInfo);
139+
date.Hour = int.Parse(m.Groups[(4)].Value, cultureInfo);
140+
date.Minute = int.Parse(m.Groups[(5)].Value, cultureInfo);
139141
return date;
140142
}
141143
m = Regex.Match(t, "^(\\d{4})-(11|12|0?\\d)-(30|31|[012]?\\d)$");
142144
if (m.Success) {
143145
MyDate date = new MyDate();
144-
date.Year = int.Parse(m.Groups[(1)].Value);
145-
date.Month = int.Parse(m.Groups[(2)].Value);
146-
date.Day = int.Parse(m.Groups[(3)].Value);
146+
date.Year = int.Parse(m.Groups[(1)].Value, cultureInfo);
147+
date.Month = int.Parse(m.Groups[(2)].Value, cultureInfo);
148+
date.Day = int.Parse(m.Groups[(3)].Value, cultureInfo);
147149
return date;
148150
}
149151
m = Regex.Match(t, "^(\\d+) (2[1234]|[01]?\\d):([012345]?\\d):([012345]?\\d)$", RegexOptions.Compiled);
150152
if (m.Success) {
151153
MyDate date = new MyDate();
152-
date.Day = int.Parse(m.Groups[(1)].Value);
153-
date.Hour = int.Parse(m.Groups[(2)].Value);
154-
date.Minute = int.Parse(m.Groups[(3)].Value);
155-
date.Second = int.Parse(m.Groups[(4)].Value);
154+
date.Day = int.Parse(m.Groups[(1)].Value, cultureInfo);
155+
date.Hour = int.Parse(m.Groups[(2)].Value, cultureInfo);
156+
date.Minute = int.Parse(m.Groups[(3)].Value, cultureInfo);
157+
date.Second = int.Parse(m.Groups[(4)].Value, cultureInfo);
156158
return date;
157159
}
158160
m = Regex.Match(t, "^(2[1234]|[01]?\\d):([012345]?\\d):([012345]?\\d)$", RegexOptions.Compiled);
159161
if (m.Success) {
160162
MyDate date = new MyDate();
161-
date.Hour = int.Parse(m.Groups[(1)].Value);
162-
date.Minute = int.Parse(m.Groups[(2)].Value);
163-
date.Second = int.Parse(m.Groups[(3)].Value);
163+
date.Hour = int.Parse(m.Groups[(1)].Value, cultureInfo);
164+
date.Minute = int.Parse(m.Groups[(2)].Value, cultureInfo);
165+
date.Second = int.Parse(m.Groups[(3)].Value, cultureInfo);
164166
return date;
165167
}
166168
m = Regex.Match(t, "^(2[1234]|[01]?\\d):([012345]?\\d)$", RegexOptions.Compiled);
167169
if (m.Success) {
168170
MyDate date = new MyDate();
169-
date.Hour = int.Parse(m.Groups[(1)].Value);
170-
date.Minute = int.Parse(m.Groups[(2)].Value);
171+
date.Hour = int.Parse(m.Groups[(1)].Value, cultureInfo);
172+
date.Minute = int.Parse(m.Groups[(2)].Value, cultureInfo);
171173
return date;
172174
}
173175
return null;

0 commit comments

Comments
 (0)