diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 17:17:46 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 17:17:46 +0000 |
| commit | 0440c722a221b8068bbf388c1c0c51f0faff0451 (patch) | |
| tree | 169cbf90c50ff7961db82ecb606c50c2a45a1688 /Gestor.Common/Gestor.Common.Helpers/Functions.cs | |
| parent | 225aa1499e37faf9d38257caabbadc68d78b427e (diff) | |
| download | gestor-0440c722a221b8068bbf388c1c0c51f0faff0451.tar.gz gestor-0440c722a221b8068bbf388c1c0c51f0faff0451.zip | |
Diffstat (limited to 'Gestor.Common/Gestor.Common.Helpers/Functions.cs')
| -rw-r--r-- | Gestor.Common/Gestor.Common.Helpers/Functions.cs | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Gestor.Common/Gestor.Common.Helpers/Functions.cs b/Gestor.Common/Gestor.Common.Helpers/Functions.cs new file mode 100644 index 0000000..b9f88cf --- /dev/null +++ b/Gestor.Common/Gestor.Common.Helpers/Functions.cs @@ -0,0 +1,102 @@ +using System; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using Gestor.Common.Validation; + +namespace Gestor.Common.Helpers; + +public class Functions +{ + public static Stopwatch Stopwatch; + + public static DateTime? StartTime; + + public static int Compare(string original, string modified) + { + if (original == null) + { + original = ""; + } + if (modified == null) + { + modified = ""; + } + string text = original.ToLongNullable().ToString(); + if (!string.IsNullOrWhiteSpace(text)) + { + original = text; + } + text = modified.ToLongNullable().ToString(); + if (!string.IsNullOrWhiteSpace(text)) + { + modified = text; + } + int length = original.Length; + int length2 = modified.Length; + int[,] array = new int[length + 1, length2 + 1]; + for (int i = 0; i <= length; i++) + { + array[i, 0] = i; + } + for (int j = 0; j <= length2; j++) + { + array[0, j] = j; + } + for (int k = 1; k <= length; k++) + { + for (int l = 1; l <= length2; l++) + { + int num = ((modified[l - 1] != original[k - 1]) ? 1 : 0); + int[] source = new int[3] + { + array[k - 1, l] + 1, + array[k, l - 1] + 1, + array[k - 1, l - 1] + num + }; + array[k, l] = source.Min(); + if (k > 1 && l > 1 && original[k - 1] == modified[l - 2] && original[k - 2] == modified[l - 1]) + { + array[k, l] = Math.Min(array[k, l], array[k - 2, l - 2] + num); + } + } + } + return array[length, length2]; + } + + public static DateTime GetNetworkTime() + { + try + { + if (StartTime.HasValue) + { + return StartTime.Value.AddMilliseconds(Stopwatch.ElapsedMilliseconds); + } + byte[] array = new byte[48]; + array[0] = 27; + IPEndPoint remoteEP = new IPEndPoint(Dns.GetHostEntry("time.google.com").AddressList.First((IPAddress a) => a.AddressFamily == AddressFamily.InterNetwork), 123); + using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) + { + socket.Connect(remoteEP); + socket.ReceiveTimeout = 3000; + socket.Send(array); + socket.Receive(array); + socket.Close(); + } + ulong num = ((ulong)array[40] << 24) | ((ulong)array[41] << 16) | ((ulong)array[42] << 8) | array[43]; + ulong num2 = ((ulong)array[44] << 24) | ((ulong)array[45] << 16) | ((ulong)array[46] << 8) | array[47]; + ulong num3 = num * 1000 + num2 * 1000 / 4294967296L; + DateTime value = new DateTime(1900, 1, 1).AddMilliseconds((long)num3).ToLocalTime(); + StartTime = value; + Stopwatch = Stopwatch.StartNew(); + return StartTime.Value; + } + catch (Exception) + { + StartTime = DateTime.Now; + Stopwatch = Stopwatch.StartNew(); + return StartTime.Value; + } + } +} |