initial commit

This commit is contained in:
2026-06-25 12:19:29 +03:00
commit 1160477945
19 changed files with 898 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
using RTCSync.Services;
using RTCSync.Utils;
namespace RTCSync.Options;
public class SyncTimeOption : IOption
{
public string Description => "Синхронизирует системное время со временем модуля реального времени. Если часы хранят UTC время, то используйте опцию universal";
public List<string> OptionNames => ["-S", "--sync-time"];
public string OptionValues => "{local, l, universal, u}";
public void Execute(OptionArgs args)
{
var device = DeviceDispatcher.SetUpDevice();
if (device == null)
return;
Console.WriteLine("Время на модуле:");
DeviceReaders.PrintTimeRTC(device);
var timeModel = DeviceReaders.GetTimeRTC(device);
// время в формате понятном для kernel32
WindowsTimeUtils.SystemTime systime;
if (args.OptionValues.TryGetValue("unnamed", out var value) && value is "universal" or "u")
systime = new WindowsTimeUtils.SystemTime(timeModel.Time);
else if (value is "local" or "l")
systime = new WindowsTimeUtils.SystemTime(timeModel.Time.ToUniversalTime());
else
systime = new WindowsTimeUtils.SystemTime(timeModel.Time.ToUniversalTime());
Console.WriteLine(WindowsTimeUtils.SetSystemTime(ref systime)
? "Время установлено в системе"
: "Ошибка: нет прав администратора");
}
}