Change the signs < for >= in the first condition. Then change the location of the exits and within the condition change the value 60 for 59 since minutes count from scratch. Your structure will work, see the example below:
C#:
Console.WriteLine("Digite sua hora de entrada");
int hours = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Digite os minutos da entrada");
int minutes = Convert.ToInt32(Console.ReadLine());
if (minutes >= 00 && minutes <= 59)
{
string hournmin = "Sua hora de entrada foi: " + hours + "h" + minutes + "min";
Console.WriteLine(hournmin);
} else
{
Console.WriteLine("Minutos inválidos... Digite um valor de 0 a 60");
minutes = Convert.ToInt32(Console.ReadLine());
}
According to the above loop, if the user enters a value less than zero or greater than 59, the loop will return a message stating the error.
Additional
It is possible to improve the logic using a while, which better treats the condition presented. See example below:
C#:
while (minutes < 00 || minutes > 59)
{
Console.WriteLine("Minutos inválidos... Digite um valor de 0 a 60");
minutes = Convert.ToInt32(Console.ReadLine());
}
string hournmin = "Sua hora de entrada foi: " + hours + "h" + minutes + "min";
Console.WriteLine(hournmin);
By replacing the if for while and change the link conditions, your program treats an invalid entry more intelligently, forwarding to the minute input until a valid entry is entered.
See if the answer helps you, I edited your question to better describe the error, I hope I have correctly understood your question.
– Brewerton Santos