Facebook
From Toxic Gibbon, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 289
  1. Zadane 1
  2.  
  3.  
  4. object Time{
  5.  
  6.   def apply(h1: Int) = new Time(h1);
  7. }
  8.  
  9.  
  10. class Time(private[this] var h:Int) {
  11.   hour = h;
  12.   def hour:Int = h;
  13.   def hour_=(newHour:Int){
  14.     if(newHour<0) h=0
  15.     else h=newHour;
  16.   }
  17.  
  18.  
  19. }
  20.  
  21. Zadanie 2a
  22.  
  23. class Time2(var h:Int, var m:Int){
  24.   require(h>=0 && h<24); //h = hour
  25.   require(m>=0 && m<60); //m = minute
  26.  
  27.   def hour:Int = h;
  28.   def hour_=(newH:Int){
  29.     require(newH>=0 && newH < 24);
  30.     h = newH;
  31.   }
  32.  
  33.   def minute:Int = m;
  34.   def minute_=(newM:Int){
  35.     require(newM>=0 && newM<60);
  36.     m= newM;
  37.   }
  38.  
  39.   def before(other:Time2):Boolean={
  40.     h<other.h || h == other.h && m < other.m
  41.   }
  42.  
  43. }
  44.  
  45.  
  46. class Time3(h:Int,m:Int){
  47.   require(h>=0 && h<24);
  48.   require(m>=0 && m<60);
  49.  
  50.   private var minutesAfterMidnight = 60 * h + m;
  51.  
  52.  
  53.   def hour:Int = minutesAfterMidnight / 60;
  54.   def hour_=(newH:Int){
  55.     require(newH>=0 && newH < 24);
  56.     minutesAfterMidnight = minute + newH * 60 ;
  57.   }
  58.  
  59.   def minute:Int = minutesAfterMidnight % 60 ;
  60.   def minute_=(newM:Int){
  61.     require(newM>=0 && newM<60);
  62.     minutesAfterMidnight = 60 * hour + newM;//????
  63.   }
  64.  
  65.   def before(other:Time3):Boolean={
  66.     minutesAfterMidnight < other.minutesAfterMidnight;
  67.   }
  68.  
  69. }
  70.  
  71.