Firstly, you need <%if begin_showing eq $date%>
For the between two dates, I have something similar. To prevent your complicated condition, try making the default of the first date 0000-00-00 and the default of the second date 3000-00-00. That way you only need
<%if date >= $begin_showing AND date <= $end_showing%> (I think that should work).
For the between two dates, I have something similar. To prevent your complicated condition, try making the default of the first date 0000-00-00 and the default of the second date 3000-00-00. That way you only need
<%if date >= $begin_showing AND date <= $end_showing%> (I think that should work).