時間帯重複チェック

お題:時間帯重複チェック - No Programming, No Life
だらだらとなってしまいました

<html>
<head>
<script type="text/javascript">
var DateRange = function(stH, edH, stM, edM){
  var checkHour = function(obj){
    return 0 <= obj.stHour <= 24 && 0 <= obj.edHour <= 24;
  };
  
  var checkMinitue = function(obj){
    return 0 <= obj.stMinitue <= 59 && 0 <= obj.edMinitue <= 59;
  };
  
  var checkDateRange = function(obj){
    return obj.stHour < obj.edHour ? true : obj.stMinitue <= obj.edMinitue;
  };
  
  var tostring = function(val){
    return val <= 9 ? "0" + val.toString() : val.toString();
  }
  
  this.stHour = parseInt(stH, 10);
  this.edHour = parseInt(edH, 10);
  this.stMinitue = parseInt(stM, 10);
  this.edMinitue = parseInt(edM, 10);

  this.inRange = function(dateRange){
    if(this.stHour <= dateRange.stHour && dateRange.stHour <= this.edHour){
      if(Math.abs(this.edMinitue - this.stMinitue) > 1)
        return true;
    }
    return false;
  };
  
  this.toString = function(){
    return tostring(this.stHour) + ":" + tostring(this.stMinitue)  + "〜" + tostring(this.edHour) + ":" + tostring(this.edMinitue);
  };
  
  if(!checkHour(this) || !checkMinitue(this) || !checkDateRange(this)){
    throw {
      name : "InvalidValue",
      message : "時間範囲不正"
    };
  }
};

function onClick(){
  var getRange = function(rangeSrc){
    return new DateRange(rangeSrc.sth, rangeSrc.edh, rangeSrc.stm, rangeSrc.edm);
  }
  
  var datas = [
    [ {sth : 1, stm : 0, edh : 5, edm : 30}, {sth : 9, stm : 0, edh : 23, edm : 0} ]  //重複なし
    , [ {sth : 1, stm : 0, edh : 2, edm : 0}, {sth : 2, stm : 0, edh : 3, edm : 0} ]  //重複なし
    , [ {sth : 1, stm : 0, edh : 2, edm : 1}, {sth : 1, stm : 59, edh : 3, edm : 0} ]  //重複あり
    , [ {sth : 1, stm : 0, edh : 2, edm : 0}, {sth : 1, stm : 0, edh : 2, edm : 0} ]  //重複なし
    , [ {sth : 10, stm : 15, edh : 10, edm : 45}, {sth : 9, stm : 15, edh : 12, edm : 55} ]  //重複あり
  ];
  
  for(var i=0;i<datas.length;i++){
    try{
       var range1 = getRange(datas[i][0]);
       var range2 = getRange(datas[i][1]);
       
       var msg = "(" + range1.toString() + " vs " + range2.toString() + ")";
       if(range1.inRange(range2) || range2.inRange(range1))
         msg = "重複あり  " + msg;
       else
         msg = "重複なし  " + msg;
     }catch(e){
       msg = e.message;
     }
     window.alert(msg);
  }
}
</script>
</head>
<body>
<input type="button" value="チェック" onclick="onClick();">
</body>
</html>