C# 09. On Time for the Exam
Здравейте, от няколко часа се мъча над тази задача, и не мога да изкарам 100 точки. Заседнал съм на 93 и не мога да открия от какво ми е проблема.
Кода:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
int d = int.Parse(Console.ReadLine());
int izp = a * 60 + b;
int my = c * 60 + d;
int min = 0;
int h = 0;
string t = "killme";
if (izp >= my && ((izp-my)<=30))
{
t = "On time";//11:30>10:55
if ((izp - my) <= 30 && ((izp - my) != 0))
{
min = izp - my;
Console.WriteLine(t);
Console.WriteLine($"{min} minutes before the start");
}
else { Console.WriteLine(t); }
}
else if (izp < my)
{
t = "Late";//9:00>10:30
if (b == d)
{
Console.WriteLine(t);
Console.WriteLine("60 minutes after the start");
}
else if ((my - izp) < 60)
{
Console.WriteLine(t);
Console.WriteLine($"{my-izp} minutes after the start");
}
else
{
min = (my - izp) % 60; Console.WriteLine($"{my} {izp} {min}");
h = (my - izp - min) / 60;
Console.WriteLine(t);
Console.WriteLine($"{h}:{min.ToString("00")} hours after the start");
}
}
else
{
t = "Early";
if ((izp - my) < 60)
{
Console.WriteLine(t);
Console.WriteLine($"{izp - my} minutes before the start");
}
else
{
min = (izp - my) % 60;
h = (izp - my - min) / 60;
Console.WriteLine(t);
Console.WriteLine($"{h}:{min.ToString("00")} hours before the start");
}
}
}
}
}
Ето и решение с използане на DateTime
https://pastebin.com/i2JbRktC