Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ScanDateWord()

void System.Globalization.DateTimeFormatInfoScanner.ScanDateWord ( string pattern)
inlinepackage

Definition at line 178 of file DateTimeFormatInfoScanner.cs.

179 {
180 _ymdFlags = FoundDatePattern.None;
181 int num = 0;
182 while (num < pattern.Length)
183 {
184 char c = pattern[num];
185 int count;
186 switch (c)
187 {
188 case '\'':
189 num = AddDateWords(pattern, num + 1, null);
190 break;
191 case 'M':
192 num = ScanRepeatChar(pattern, 'M', num, out count);
193 if (count >= 4 && num < pattern.Length && pattern[num] == '\'')
194 {
195 num = AddDateWords(pattern, num + 1, "MMMM");
196 }
197 _ymdFlags |= FoundDatePattern.FoundMonthPatternFlag;
198 break;
199 case 'y':
200 {
201 num = ScanRepeatChar(pattern, 'y', num, out var _);
202 _ymdFlags |= FoundDatePattern.FoundYearPatternFlag;
203 break;
204 }
205 case 'd':
206 num = ScanRepeatChar(pattern, 'd', num, out count);
207 if (count <= 2)
208 {
209 _ymdFlags |= FoundDatePattern.FoundDayPatternFlag;
210 }
211 break;
212 case '\\':
213 num += 2;
214 break;
215 case '.':
216 if (_ymdFlags == FoundDatePattern.FoundYMDPatternFlag)
217 {
219 _ymdFlags = FoundDatePattern.None;
220 }
221 num++;
222 break;
223 default:
224 if (_ymdFlags == FoundDatePattern.FoundYMDPatternFlag && !char.IsWhiteSpace(c))
225 {
226 _ymdFlags = FoundDatePattern.None;
227 }
228 num++;
229 break;
230 }
231 }
232 }
static int ScanRepeatChar(string pattern, char ch, int index, out int count)
int AddDateWords(string pattern, int index, string formatPostfix)

References System.Globalization.DateTimeFormatInfoScanner._ymdFlags, System.Globalization.DateTimeFormatInfoScanner.AddDateWords(), System.Globalization.DateTimeFormatInfoScanner.AddIgnorableSymbols(), System.count, and System.Globalization.DateTimeFormatInfoScanner.ScanRepeatChar().

Referenced by System.Globalization.DateTimeFormatInfoScanner.GetDateWordsOfDTFI().