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

◆ NlsGetJapaneseEras()

static EraInfo[] System.Globalization.JapaneseCalendar.NlsGetJapaneseEras ( )
inlinestaticprivate

Definition at line 293 of file JapaneseCalendar.cs.

294 {
295 int num = 0;
296 EraInfo[] array = null;
297 try
298 {
299 using RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Control\\Nls\\Calendars\\Japanese\\Eras");
300 if (registryKey == null)
301 {
302 return null;
303 }
304 string[] valueNames = registryKey.GetValueNames();
305 if (valueNames != null && valueNames.Length != 0)
306 {
307 array = new EraInfo[valueNames.Length];
308 for (int i = 0; i < valueNames.Length; i++)
309 {
310 EraInfo eraFromValue = GetEraFromValue(valueNames[i], registryKey.GetValue(valueNames[i])?.ToString());
311 if (eraFromValue != null)
312 {
313 array[num] = eraFromValue;
314 num++;
315 }
316 }
317 }
318 }
319 catch (SecurityException)
320 {
321 return null;
322 }
323 catch (IOException)
324 {
325 return null;
326 }
327 catch (UnauthorizedAccessException)
328 {
329 return null;
330 }
331 if (num < 4)
332 {
333 return null;
334 }
335 Array.Resize(ref array, num);
337 for (int j = 0; j < array.Length; j++)
338 {
339 array[j].era = array.Length - j;
340 if (j == 0)
341 {
342 array[0].maxEraYear = 9999 - array[0].yearOffset;
343 }
344 else
345 {
346 array[j].maxEraYear = array[j - 1].yearOffset + 1 - array[j].yearOffset;
347 }
348 }
349 return array;
350 }
static readonly RegistryKey LocalMachine
Definition Registry.cs:9
static int CompareEraRanges(EraInfo a, EraInfo b)
static EraInfo GetEraFromValue(string value, string data)

References System.array, System.Globalization.JapaneseCalendar.CompareEraRanges(), System.Globalization.JapaneseCalendar.GetEraFromValue(), Internal.Win32.Registry.LocalMachine, and System.Array.Sort().

Referenced by System.Globalization.JapaneseCalendar.GetEraInfo().