Why are you converting the time to a string? You just need the actual time values so you can compare them.
DateTime openTime;
DateTime closeTime;
Bool shopOpen;
DateTime now = System.DateTime.Now;
if (now >= openTime && now < closeTime)
{
shopOpen = true;
}
else
{
shopOpen = false;
}