1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | // // Copyright (C) 2015 CYBUTEK // // 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 <http://www.gnu.org/licenses/>. // namespace KerbalEngineer.Helpers { public static class TimeFormatter { public static string ConvertToString(double seconds, string format = "F1") { int years = 0; int days = 0; int hours = 0; int minutes = 0; if (seconds > 0.0) { years = (int)(seconds / KSPUtil.Year); seconds -= years * KSPUtil.Year; days = (int)(seconds / KSPUtil.Day); seconds -= days * KSPUtil.Day; hours = (int)(seconds / 3600.0); seconds -= hours * 3600.0; minutes = (int)(seconds / 60.0); seconds -= minutes * 60.0; } if (years > 0) { return string.Format("{0}y {1}d {2}h {3}m {4}s", years, days, hours, minutes, seconds.ToString(format)); } if (days > 0) { return string.Format("{0}d {1}h {2}m {3}s", days, hours, minutes, seconds.ToString(format)); } if (hours > 0) { return string.Format("{0}h {1}m {2}s", hours, minutes, seconds.ToString(format)); } return minutes > 0 ? string.Format("{0}m {1}s", minutes, seconds.ToString(format)) : string.Format("{0}s", seconds.ToString(format)); } } } |