+2

Military Time Problem

My Code below does not solve the puzzle, only 2 out of 5 tests passes! What am I doing wrong? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Globalization; namespace SoloLearn { class Program { static void Main(string[] args) { DateTimeFormatInfo fi = new CultureInfo( "en-US", false ).DateTimeFormat; string StrAmPm = Console.ReadLine(); DateTime myTime = DateTime.ParseExact(StrAmPm.ToUpper(), "hh:mm tt", fi); Console.WriteLine(myTime.ToString("HH:mm")); } } }

12/31/2019 9:03:16 AM

Jan Gundersen

3 Answers

New Answer

+3

Hello! I detect the problem. 1:45 AM = 01:45 ≠ 1:45 // New code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SoloLearn { class Program { static void Main(string[] args) { var text = Console.ReadLine(); if (text.EndsWith(" AM")) { string result = text.Substring(0, text.Length - 3); if (result.Split(":")[0].Length == 1) { result = "0" + result; } Console.Write(result ); } else { text = text.Substring(0, text.Length - 3); string[] times = text.Split(":"); times[0] = Convert.ToString(int.Parse(times[0]) + 12); if (times[0] == "24") { times[0] = "0"; } Console.Write(times[0] + ":" + times[1]); } } } }

+2

I have this code (DateTime alternative) and the same problem: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SoloLearn { class Program { static void Main(string[] args) { var text = Console.ReadLine(); if (text.EndsWith(" AM")) { Console.Write(text.Substring(0, text.Length - 3)); } else { text = text.Substring(0, text.Length - 3); string[] times = text.Split(":"); times[0] = Convert.ToString(int.Parse(times[0]) + 12); if (times[0] == "24") { times[0] = "0"; } Console.Write(times[0] + ":" + times[1]); } } } }

+1

Ok! Maybe there is a problem in the tests or instructions is missing.