-1
I am trying to develop a logic where there will be any schedule I need to find within a range of hours (Start time and End time)
But I can’t make the correct comparison and/or I’m not treating it right.
In the tests I used the comparison time: 03:37:33 to find in the ranges
Follows code:
class Program
{
static void Main(string[] args)
{
DateTime dtImportacao = new DateTime(2019,07,01,03,33,37);
TimeSpan[] datasInicias = new TimeSpan[]
{
new TimeSpan(06,00,00),
new TimeSpan(00,00,00),
new TimeSpan(23,00,00),
new TimeSpan(06,00,00),
new TimeSpan(19,00,01),
new TimeSpan(06,00,00),
new TimeSpan(23,00,00),
new TimeSpan(08,00,00),
new TimeSpan(19,00,00),
new TimeSpan(19,00,00),
new TimeSpan(06,00,00),
new TimeSpan(22,00,00),
new TimeSpan(23,00,00),
new TimeSpan(06,00,01)
};
TimeSpan[] datasFinais = new TimeSpan[]
{
new TimeSpan(23,00,00),
new TimeSpan(23,59,59),
new TimeSpan(06,00,00),
new TimeSpan(19,00,00),
new TimeSpan(05,59,59),
new TimeSpan(23,00,00),
new TimeSpan(06,00,00),
new TimeSpan(20,00,00),
new TimeSpan(06,00,00),
new TimeSpan(05,45,59),
new TimeSpan(22,00,00),
new TimeSpan(06,00,00),
new TimeSpan(06,00,00),
new TimeSpan(22,59,59)
};
for (int i = 0; i < datasInicias.Length; i++)
{
if (TimeSpan.Compare(dtImportacao.TimeOfDay, datasInicias[i]) == -1 || TimeSpan.Compare(dtImportacao.TimeOfDay, datasFinais[i]) == 1)
{
Console.WriteLine("Parametro de Comparação: {0} | {1} Até {2} Fora", dtImportacao.TimeOfDay, datasInicias[i], datasFinais[i]);
}
else
{
Console.WriteLine("Parametro de Comparação: {0} | {1} Até {2} Dentro", dtImportacao.TimeOfDay, datasInicias[i], datasFinais[i]);
}
}
Console.ReadKey();
}
}
Console return:
//Parametro de Comparação: 03:33:37 | 06:00:00 Até 23:00:00 Fora
//Parametro de Comparação: 03:33:37 | 00:00:00 Até 23:59:59 Dentro
//Parametro de Comparação: 03:33:37 | 23:00:00 Até 06:00:00 Fora
//Parametro de Comparação: 03:33:37 | 06:00:00 Até 19:00:00 Fora
//Parametro de Comparação: 03:33:37 | 19:00:01 Até 05:59:59 Fora
//Parametro de Comparação: 03:33:37 | 06:00:00 Até 23:00:00 Fora
//Parametro de Comparação: 03:33:37 | 23:00:00 Até 06:00:00 Fora
//Parametro de Comparação: 03:33:37 | 08:00:00 Até 20:00:00 Fora
//Parametro de Comparação: 03:33:37 | 19:00:00 Até 06:00:00 Fora
//Parametro de Comparação: 03:33:37 | 19:00:00 Até 05:45:59 Fora
//Parametro de Comparação: 03:33:37 | 06:00:00 Até 22:00:00 Fora
//Parametro de Comparação: 03:33:37 | 22:00:00 Até 06:00:00 Fora
//Parametro de Comparação: 03:33:37 | 23:00:00 Até 06:00:00 Fora
//Parametro de Comparação: 03:33:37 | 06:00:01 Até 22:59:59 Fora
How should I get out:
'Cause you’re comparing
TimeSpan
withDateTime
?– MauroAlmeida
Timespan are time intervals, not dates as you indicate in your variables.
– MauroAlmeida