From 6e20a3091c6b3229c7d287038e3d0fffd39a84c0 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Thu, 8 Jun 2023 19:08:26 +0200 Subject: [PATCH] Fix CA1305 and bump to error --- .editorconfig | 4 +++- .../DisplayManager/Filters/Retro.cs | 3 ++- .../movie/import/PjmImport.cs | 19 ++++++++++--------- .../Extensions/ToolExtensions.cs | 3 ++- .../config/DisplayConfig.cs | 5 +++-- src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs | 7 ++++--- .../tools/TAStudio/PatternsForm.cs | 3 ++- .../tools/TAStudio/TAStudio.ListView.cs | 16 ++++++++-------- .../BizDateTimeConverter.cs | 2 +- .../ConstrainedFloatConverter.cs | 2 +- src/BizHawk.Common/Serializer.cs | 4 ++-- .../AmstradCPC/AmstradCPC.Messaging.cs | 5 +++-- .../Hardware/Disk/NECUPD765.IPortIODevice.cs | 3 ++- .../Hardware/Disk/NECUPD765.IPortIODevice.cs | 3 ++- .../SinclairSpectrum/ZXSpectrum.Messaging.cs | 5 +++-- .../NymaCore.Settings.ComponentModel.cs | 6 +++--- .../Waterbox/NymaCore.cs | 5 +++-- 17 files changed, 54 insertions(+), 41 deletions(-) diff --git a/.editorconfig b/.editorconfig index 43e76e23b0..d3c69da1dd 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,5 +13,7 @@ csharp_indent_case_contents = true csharp_indent_labels = one_less_than_current # Globalization rules -dotnet_diagnostic.CA1305.severity = silent +dotnet_code_quality.CA1305.excluded_symbol_names = T:System.Byte|T:System.SByte|T:System.Int16|T:System.UInt16|T:System.Int32|T:System.UInt32|T:System.Int64|T:System.UInt64|T:System.String|T:System.Text.StringBuilder|T:System.Convert + +dotnet_diagnostic.CA1305.severity = error dotnet_diagnostic.CA2101.severity = suggestion diff --git a/src/BizHawk.Client.Common/DisplayManager/Filters/Retro.cs b/src/BizHawk.Client.Common/DisplayManager/Filters/Retro.cs index 4ca419684a..5ebe402297 100644 --- a/src/BizHawk.Client.Common/DisplayManager/Filters/Retro.cs +++ b/src/BizHawk.Client.Common/DisplayManager/Filters/Retro.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Globalization; using System.IO; using System.Numerics; using System.Text.RegularExpressions; @@ -234,7 +235,7 @@ namespace BizHawk.Client.Common.Filters private static float FetchFloat(IDictionary dict, string key, float @default) { - return dict.TryGetValue(key, out var str) ? float.Parse(str) : @default; + return dict.TryGetValue(key, out var str) ? float.Parse(str, NumberFormatInfo.InvariantInfo) : @default; } private static bool FetchBool(IDictionary dict, string key, bool @default) diff --git a/src/BizHawk.Client.Common/movie/import/PjmImport.cs b/src/BizHawk.Client.Common/movie/import/PjmImport.cs index c7bc19c1fe..cacff790ea 100644 --- a/src/BizHawk.Client.Common/movie/import/PjmImport.cs +++ b/src/BizHawk.Client.Common/movie/import/PjmImport.cs @@ -1,4 +1,5 @@ -using System.IO; +using System.Globalization; +using System.IO; using BizHawk.Common.StringExtensions; using BizHawk.Emulation.Common; using BizHawk.Emulation.Cores.Sony.PSX; @@ -350,10 +351,10 @@ namespace BizHawk.Client.Common string rightXRaw = player1Str.Substring(24, 4); string rightYRaw = player1Str.Substring(28, 4); - var leftX = ("P1 LStick X", (int) float.Parse(leftXRaw)); - var leftY = ("P1 LStick Y", (int) float.Parse(leftYRaw)); - var rightX = ("P1 RStick X", (int) float.Parse(rightXRaw)); - var rightY = ("P1 RStick Y", (int) float.Parse(rightYRaw)); + var leftX = ("P1 LStick X", (int) float.Parse(leftXRaw, NumberFormatInfo.InvariantInfo)); + var leftY = ("P1 LStick Y", (int) float.Parse(leftYRaw, NumberFormatInfo.InvariantInfo)); + var rightX = ("P1 RStick X", (int) float.Parse(rightXRaw, NumberFormatInfo.InvariantInfo)); + var rightY = ("P1 RStick Y", (int) float.Parse(rightYRaw, NumberFormatInfo.InvariantInfo)); controllers.AcceptNewAxes(new[] { leftX, leftY, rightX, rightY }); } @@ -385,10 +386,10 @@ namespace BizHawk.Client.Common string rightXRaw = player2Str.Substring(24, 4); string rightYRaw = player2Str.Substring(28, 4); - var leftX = ("P2 LStick X", (int) float.Parse(leftXRaw)); - var leftY = ("P2 LStick Y", (int) float.Parse(leftYRaw)); - var rightX = ("P2 RStick X", (int) float.Parse(rightXRaw)); - var rightY = ("P2 RStick Y", (int) float.Parse(rightYRaw)); + var leftX = ("P2 LStick X", (int) float.Parse(leftXRaw, NumberFormatInfo.InvariantInfo)); + var leftY = ("P2 LStick Y", (int) float.Parse(leftYRaw, NumberFormatInfo.InvariantInfo)); + var rightX = ("P2 RStick X", (int) float.Parse(rightXRaw, NumberFormatInfo.InvariantInfo)); + var rightY = ("P2 RStick Y", (int) float.Parse(rightYRaw, NumberFormatInfo.InvariantInfo)); controllers.AcceptNewAxes(new[] { leftX, leftY, rightX, rightY }); } diff --git a/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs b/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs index 869e135227..e394e6940f 100644 --- a/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs +++ b/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Collections.Generic; +using System.Globalization; using System.Windows.Forms; using BizHawk.Common; @@ -76,7 +77,7 @@ namespace BizHawk.Client.EmuHawk.ToolExtensions { //make a menuitem to show the last modified timestamp var timestamp = File.GetLastWriteTime(hf.FullPathWithoutMember); - var tsmiTimestamp = new ToolStripLabel { Text = timestamp.ToString() }; + var tsmiTimestamp = new ToolStripLabel { Text = timestamp.ToString(DateTimeFormatInfo.InvariantInfo) }; tsdd.Items.Add(tsmiTimestamp); tsdd.Items.Add(new ToolStripSeparator()); diff --git a/src/BizHawk.Client.EmuHawk/config/DisplayConfig.cs b/src/BizHawk.Client.EmuHawk/config/DisplayConfig.cs index f10dbdbce2..556b574dab 100755 --- a/src/BizHawk.Client.EmuHawk/config/DisplayConfig.cs +++ b/src/BizHawk.Client.EmuHawk/config/DisplayConfig.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using System.IO; using System.Windows.Forms; @@ -98,9 +99,9 @@ namespace BizHawk.Client.EmuHawk if (_config.DispCustomUserARHeight != -1) txtCustomARHeight.Text = _config.DispCustomUserARHeight.ToString(); if (_config.DispCustomUserArx != -1) - txtCustomARX.Text = _config.DispCustomUserArx.ToString(); + txtCustomARX.Text = _config.DispCustomUserArx.ToString(NumberFormatInfo.InvariantInfo); if (_config.DispCustomUserAry != -1) - txtCustomARY.Text = _config.DispCustomUserAry.ToString(); + txtCustomARY.Text = _config.DispCustomUserAry.ToString(NumberFormatInfo.InvariantInfo); txtCropLeft.Text = _config.DispCropLeft.ToString(); txtCropTop.Text = _config.DispCropTop.ToString(); diff --git a/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs b/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs index a1ab8b52cc..f15fcc7c99 100644 --- a/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs +++ b/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using System.Collections.Generic; using System.Drawing; +using System.Globalization; using System.IO; using System.Linq; using System.Text; @@ -76,7 +77,7 @@ namespace BizHawk.Client.EmuHawk } private static string MovieTimeLengthStr(TimeSpan movieLength) - => movieLength.ToString(movieLength.Days == 0 ? @"hh\:mm\:ss\.fff" : @"dd\:hh\:mm\:ss\.fff"); + => movieLength.ToString(movieLength.Days == 0 ? @"hh\:mm\:ss\.fff" : @"dd\:hh\:mm\:ss\.fff", DateTimeFormatInfo.InvariantInfo); private void MovieView_QueryItemText(object sender, RetrieveVirtualItemEventArgs e) { @@ -104,7 +105,7 @@ namespace BizHawk.Client.EmuHawk { return null; } - + var movie = LoadMovieInfo(file, force); if (movie == null) { @@ -257,7 +258,7 @@ namespace BizHawk.Client.EmuHawk while (dpTodo.Count > 0) { string dp = dpTodo.Dequeue(); - + // enqueue subdirectories if appropriate if (_config.PlayMovieIncludeSubDir) { diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/PatternsForm.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/PatternsForm.cs index ec854b8d56..e1e4e74cc3 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/PatternsForm.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/PatternsForm.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Windows.Forms; using BizHawk.Client.Common; @@ -110,7 +111,7 @@ namespace BizHawk.Client.EmuHawk return; } - _values[PatternList.SelectedIndex] = ValueNum.Value.ToString(); + _values[PatternList.SelectedIndex] = ValueNum.Value.ToString(NumberFormatInfo.InvariantInfo); UpdatePattern(); UpdateDisplay(); } diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index 9f455c0c38..294f808593 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -3,7 +3,7 @@ using System.Drawing; using System.Linq; using System.Windows.Forms; using System.Collections.Generic; - +using System.Globalization; using BizHawk.Emulation.Common; using BizHawk.Common.NumberExtensions; using BizHawk.Client.Common; @@ -356,7 +356,7 @@ namespace BizHawk.Client.EmuHawk if (column.Type == ColumnType.Axis) { // feos: this could be cached, but I don't notice any slowdown this way either - if (text == ((float) ControllerType.Axes[columnName].Neutral).ToString()) + if (text == ((float) ControllerType.Axes[columnName].Neutral).ToString(NumberFormatInfo.InvariantInfo)) { text = ""; } @@ -1297,12 +1297,12 @@ namespace BizHawk.Client.EmuHawk if (e.KeyCode == Keys.Right) { value = rMax; - _axisTypedValue = value.ToString(); + _axisTypedValue = value.ToString(NumberFormatInfo.InvariantInfo); } else if (e.KeyCode == Keys.Left) { value = rMin; - _axisTypedValue = value.ToString(); + _axisTypedValue = value.ToString(NumberFormatInfo.InvariantInfo); } else if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) { @@ -1332,7 +1332,7 @@ namespace BizHawk.Client.EmuHawk { if (_axisTypedValue == "") // Very first key press is backspace? { - _axisTypedValue = value.ToString(); + _axisTypedValue = value.ToString(NumberFormatInfo.InvariantInfo); } _axisTypedValue = _axisTypedValue.Substring(0, _axisTypedValue.Length - 1); @@ -1384,7 +1384,7 @@ namespace BizHawk.Client.EmuHawk value += changeBy; if (changeBy != 0) { - _axisTypedValue = value.ToString(); + _axisTypedValue = value.ToString(NumberFormatInfo.InvariantInfo); } } @@ -1404,7 +1404,7 @@ namespace BizHawk.Client.EmuHawk } else { - if (float.TryParse(_axisTypedValue, out value)) // String "-" can't be parsed. + if (float.TryParse(_axisTypedValue, NumberStyles.Float, NumberFormatInfo.InvariantInfo, out value)) // String "-" can't be parsed. { if (value > rMax) { @@ -1415,7 +1415,7 @@ namespace BizHawk.Client.EmuHawk value = rMin; } - _axisTypedValue = value.ToString(); + _axisTypedValue = value.ToString(NumberFormatInfo.InvariantInfo); CurrentTasMovie.SetAxisState(_axisEditRow, _axisEditColumn, (int) value); } } diff --git a/src/BizHawk.Common/PropertyGridConverters/BizDateTimeConverter.cs b/src/BizHawk.Common/PropertyGridConverters/BizDateTimeConverter.cs index 5b1bd38bd1..1b6ec45724 100644 --- a/src/BizHawk.Common/PropertyGridConverters/BizDateTimeConverter.cs +++ b/src/BizHawk.Common/PropertyGridConverters/BizDateTimeConverter.cs @@ -9,7 +9,7 @@ namespace BizHawk.Common public override object ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType) { if (value is not DateTime d || destinationType != typeof(string)) throw new NotSupportedException("can only do DateTime --> string"); - return d.ToString(); + return d.ToString(DateTimeFormatInfo.InvariantInfo); } } } diff --git a/src/BizHawk.Common/PropertyGridConverters/ConstrainedFloatConverter.cs b/src/BizHawk.Common/PropertyGridConverters/ConstrainedFloatConverter.cs index 9b84cf4545..0f004e793a 100644 --- a/src/BizHawk.Common/PropertyGridConverters/ConstrainedFloatConverter.cs +++ b/src/BizHawk.Common/PropertyGridConverters/ConstrainedFloatConverter.cs @@ -50,7 +50,7 @@ namespace BizHawk.Common if (destinationType == typeof(string)) { var num = Convert.ToSingle(value); - return num.ToString(); + return num.ToString(NumberFormatInfo.InvariantInfo); } return base.ConvertTo(context, culture, value, destinationType)!; diff --git a/src/BizHawk.Common/Serializer.cs b/src/BizHawk.Common/Serializer.cs index 01f86ff22c..9190eb916a 100644 --- a/src/BizHawk.Common/Serializer.cs +++ b/src/BizHawk.Common/Serializer.cs @@ -1230,7 +1230,7 @@ namespace BizHawk.Common { if (Present(name)) { - val = float.Parse(Item(name)); + val = float.Parse(Item(name), NumberFormatInfo.InvariantInfo); } } @@ -1243,7 +1243,7 @@ namespace BizHawk.Common { if (Present(name)) { - val = double.Parse(Item(name)); + val = double.Parse(Item(name), NumberFormatInfo.InvariantInfo); } } diff --git a/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.Messaging.cs b/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.Messaging.cs index 1784863046..0e7d4a297b 100644 --- a/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.Messaging.cs +++ b/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.Messaging.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Text; namespace BizHawk.Emulation.Cores.Computers.AmstradCPC @@ -420,7 +421,7 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC if (end != 0) p = ((double)pos / (double)end) * 100.0; - sb.Append(p.ToString("N0") + "%"); + sb.Append(p.ToString("N0", NumberFormatInfo.InvariantInfo) + "%"); SendMessage(sb.ToString().TrimEnd('\n'), MessageCategory.Tape); sb.Clear(); @@ -443,7 +444,7 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC // work out overall position within the tape p = 0; p = ((double)ourPos / (double)cnt) * 100.0; - sb.Append(p.ToString("N0") + "%"); + sb.Append(p.ToString("N0", NumberFormatInfo.InvariantInfo) + "%"); SendMessage(sb.ToString().TrimEnd('\n'), MessageCategory.Tape); } diff --git a/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/Disk/NECUPD765.IPortIODevice.cs b/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/Disk/NECUPD765.IPortIODevice.cs index 6c24e18716..763080209c 100644 --- a/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/Disk/NECUPD765.IPortIODevice.cs +++ b/src/BizHawk.Emulation.Cores/Computers/AmstradCPC/Hardware/Disk/NECUPD765.IPortIODevice.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Globalization; using System.Text; namespace BizHawk.Emulation.Cores.Computers.AmstradCPC @@ -16,7 +17,7 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC */ public partial class NECUPD765 : IPortIODevice { - public string outputfile = @"D:\Dropbox\Dropbox\_Programming\TASVideos\BizHawk\output\zxhawkio-" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".csv"; + public string outputfile = @"D:\Dropbox\Dropbox\_Programming\TASVideos\BizHawk\output\zxhawkio-" + DateTime.Now.ToString("yyyyMMdd_HHmmss", DateTimeFormatInfo.InvariantInfo) + ".csv"; public string outputString = "STATUS,WRITE,READ,CODE,MT,MF,SK,CMDCNT,RESCNT,EXECCNT,EXECLEN\r\n"; public bool writeDebug = false; diff --git a/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/Disk/NECUPD765.IPortIODevice.cs b/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/Disk/NECUPD765.IPortIODevice.cs index 77b6c44915..4bb412a50a 100644 --- a/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/Disk/NECUPD765.IPortIODevice.cs +++ b/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/Disk/NECUPD765.IPortIODevice.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Globalization; using System.Text; namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum @@ -16,7 +17,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum */ public partial class NECUPD765 : IPortIODevice { - public string outputfile = @"D:\Dropbox\Dropbox\_Programming\TASVideos\BizHawk\output\zxhawkio-" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".csv"; + public string outputfile = @"D:\Dropbox\Dropbox\_Programming\TASVideos\BizHawk\output\zxhawkio-" + DateTime.Now.ToString("yyyyMMdd_HHmmss", DateTimeFormatInfo.InvariantInfo) + ".csv"; public string outputString = "STATUS,WRITE,READ,CODE,MT,MF,SK,CMDCNT,RESCNT,EXECCNT,EXECLEN\r\n"; public bool writeDebug = false; diff --git a/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.Messaging.cs b/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.Messaging.cs index e7d39aadda..c73fc395f8 100644 --- a/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.Messaging.cs +++ b/src/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.Messaging.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using System.Text; namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum @@ -392,7 +393,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum if (end != 0) p = ((double)pos / (double)end) * 100.0; - sb.Append(p.ToString("N0") + "%"); + sb.Append(p.ToString("N0", NumberFormatInfo.InvariantInfo) + "%"); SendMessage(sb.ToString().TrimEnd('\n'), MessageCategory.Tape); sb.Clear(); @@ -415,7 +416,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum // work out overall position within the tape p = 0; p = ((double)ourPos / (double)cnt) * 100.0; - sb.Append(p.ToString("N0") + "%"); + sb.Append(p.ToString("N0", NumberFormatInfo.InvariantInfo) + "%"); SendMessage(sb.ToString().TrimEnd('\n'), MessageCategory.Tape); } diff --git a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs index 54b996bf84..be7b0379cb 100644 --- a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs +++ b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs @@ -295,9 +295,9 @@ namespace BizHawk.Emulation.Cores.Waterbox public override Type PropertyType => typeof(double); protected override object ConvertFromString(string s) { - var ret = double.Parse(s); - if (Setting.Min != null && ret < double.Parse(Setting.Min) || Setting.Max != null && ret > double.Parse(Setting.Max)) - ret = double.Parse(Setting.DefaultValue); + var ret = double.Parse(s, NumberFormatInfo.InvariantInfo); + if (Setting.Min != null && ret < double.Parse(Setting.Min, NumberFormatInfo.InvariantInfo) || Setting.Max != null && ret > double.Parse(Setting.Max, NumberFormatInfo.InvariantInfo)) + ret = double.Parse(Setting.DefaultValue, NumberFormatInfo.InvariantInfo); return ret; } protected override string ConvertToString(object o) diff --git a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs index 7f410c8522..95003b5ada 100644 --- a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs +++ b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using System.Runtime.InteropServices; @@ -166,10 +167,10 @@ namespace BizHawk.Emulation.Cores.Waterbox if (_disks != null) _nyma.SetCDCallbacks(_cdTocCallback, _cdSectorCallback); PutSettings(_settings); - DateTime RtcStart = DateTime.Parse("2010-01-01"); + DateTime RtcStart = DateTime.Parse("2010-01-01", DateTimeFormatInfo.InvariantInfo); try { - RtcStart = DateTime.Parse(SettingsQuery("nyma.rtcinitialtime")); + RtcStart = DateTime.Parse(SettingsQuery("nyma.rtcinitialtime"), DateTimeFormatInfo.InvariantInfo); } catch {