using System; using System.IO; using UnityEngine; using UnityEngine.Events; public class DateManager { public static string EndTimer = "2025-07-06 00:00:00";//结束时间 private static string RecordData; /// /// 更新系统时间 /// public static void UpdateTime(UnityAction error = null, UnityAction timeOut = null, UnityAction update = null, UnityAction success = null) { try { string datas = DecryptFileReader.ReadAndDecryptData("Timer.txt"); EndTimer = datas.Split('|')[0]; RecordData = datas.Split('|')[1]; //第一次获取获取系统时间 DateTime currentDateTime = DateTime.Now; string Data = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss"); if (DateTime.TryParse(RecordData, out DateTime recordDateTime) && DateTime.TryParse(Data, out DateTime nowDateTime)) { if (recordDateTime > nowDateTime) { Debug.Log("仿真文件被损坏,请联系管理员进行修复"); error?.Invoke("仿真文件被损坏,请联系管理员进行修复"); } else { //把上一次存储得系统时间更新到最新 string timer = "Timer.txt"; RecordData = Data; string strMerge = EndTimer + "|" + RecordData; EncryptFileCreator.EncryptAndSaveData(strMerge, timer); update?.Invoke(); } } } catch (Exception e) { Debug.LogError($"数据出错: {e.Message}"); error?.Invoke($"数据出错: {e.Message}"); } if (JudgeExpire()) { Debug.Log("请联系管理员进行升级"); timeOut?.Invoke("请联系管理员进行升级"); return; } success?.Invoke(); } /// /// 更新系统时间 /// public static void UpdateTime(string datas, UnityAction error = null, UnityAction timeOut = null, UnityAction update = null, UnityAction success = null) { try { EndTimer = datas.Split('|')[0]; RecordData = datas.Split('|')[1]; //第一次获取获取系统时间 DateTime currentDateTime = DateTime.Now; string Data = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss"); if (DateTime.TryParse(RecordData, out DateTime recordDateTime) && DateTime.TryParse(Data, out DateTime nowDateTime)) { if (recordDateTime > nowDateTime) { Debug.Log("仿真文件被损坏,请联系管理员进行修复"); error?.Invoke("仿真文件被损坏,请联系管理员进行修复"); } else { //把上一次存储得系统时间更新到最新 //string timer = "Timer.txt"; //RecordData = Data; //string strMerge = EndTimer + "|" + RecordData; //EncryptFileCreator.EncryptAndSaveData(strMerge, timer); update?.Invoke(); } } } catch (Exception e) { Debug.LogError($"数据出错: {e.Message}"); error?.Invoke($"数据出错: {e.Message}"); } if (JudgeExpire()) { Debug.Log("请联系管理员进行升级"); timeOut?.Invoke("请联系管理员进行升级"); return; } success?.Invoke(); } /// /// 判断是否到期 /// /// public static bool JudgeExpire() { if (DateTime.TryParse(EndTimer, out DateTime endDataTime) && DateTime.TryParse(RecordData, out DateTime recordDateTime)) { //结束日期小于目前日期代表到期 if (endDataTime < recordDateTime) { return true; } } return false; } /// /// 给客户打包的时候,需要设置EndTimer,然后运行一次生成文件并注释掉 /// public static void CreatTimer() { //第一次获取获取系统时间 DateTime currentDateTime = DateTime.Now; RecordData = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss"); string strMerge = EndTimer + "|" + RecordData; EncryptFileCreator.EncryptAndSaveData(strMerge, "Timer.txt"); } }