// The CMLeonOS Project (https://github.com/Leonmmcoset/CMLeonOS) // Copyright (C) 2025-present LeonOS 2 Developer Team // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System; namespace CMLeonOS.Commands.System { public static class UptimeCommand { public static void ShowUptime(Action showError, Action showWarning) { try { Console.WriteLine("===================================="); Console.WriteLine(" System Uptime"); Console.WriteLine("===================================="); Console.WriteLine(); if (Kernel.SystemStartTime != DateTime.MinValue) { TimeSpan uptime = DateTime.Now - Kernel.SystemStartTime; Console.WriteLine("System started: " + Kernel.SystemStartTime.ToString("yyyy-MM-dd HH:mm:ss")); Console.WriteLine("Current time: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Console.WriteLine(); int days = uptime.Days; int hours = uptime.Hours; int minutes = uptime.Minutes; int seconds = uptime.Seconds; Console.WriteLine($"System uptime: {days} days, {hours} hours, {minutes} minutes, {seconds} seconds"); Console.WriteLine($"Total uptime: {uptime.TotalHours:F2} hours"); } else { showWarning("System start time not available."); showWarning("System may have been started before uptime tracking was implemented."); } Console.WriteLine(); } catch (Exception ex) { showError($"Error showing uptime: {ex.Message}"); } } } }