Direi che puoi facilitarti molto la vita delegando il lavoro a GregorianCalendar:

Codice PHP:
package test;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class 
Main
{
   private static 
String format(GregorianCalendar time)
   {
      return 
time.get(Calendar.HOUR_OF_DAY) + ":" time.get(Calendar.MINUTE);
   }
   
   public static 
void main(String[] args)
   {
      
int hh1 20;              //
      
int mm1 30;              // 20:30
      
int hh2 hh1 5+24 5//
      
int mm2 0;               // 05:00 
      
int hh3 23;              //
      
int mm3 10;              // 23:10
   
      
GregorianCalendar inizio = new GregorianCalendar(0,0,0hh1mm1);
      
GregorianCalendar fine = new GregorianCalendar(0,0,0hh2mm2);
      
GregorianCalendar ora = new GregorianCalendar(0,0,0hh3mm3);
      
      
boolean result ora.after(inizio) && ora.before(fine);     
      
      
System.out.println(format(inizio) + " <= " format(ora) + " <= " format(fine) + "   =>   " result);
   }

Ti rimane solo da controllare se controlla le varie casistiche