 void writeTimeToDisplayBuffer(DateTime now, boolean blinkOn, boolean secondsBlinkOn){
   uView.setCursor(0,0);
   uView.setFontType(7);
-
-  uView.print(now.hour());
-  if(secondsBlinkOn){
-    uView.print(":");
+  
+  String timeString = generateTimeString(now.hour(), now.minute(), secondsBlinkOn);
+  uView.println(timeString);
+}
+
+String generateTimeString(int hour, int minute, boolean blinkOn){
+  char buff[3];
+  
+  String hourString;
+  
+  if(currentState == SETTING_TIME && settingTimeProcess == T_HOUR && !blinkOn){
+    hourString = "  ";
+  } else {
+    sprintf(buff, "%02d", hour);
+    hourString = buff;
+  }
+
+  String minuteString;
+  if(currentState == SETTING_TIME && settingTimeProcess == T_MINUTE && !blinkOn){
+    minuteString = "  ";
+  } else {
+    sprintf(buff, "%02d", minute);
+    minuteString = buff;
+  }
+  
+  String secondString;
+  
+ if(blinkOn){
+    secondString = ":";
   } 
   else {
-    uView.print(" ");
-  }
-
-
-  uView.println(now.minute());
-
-
-
+    secondString = " ";
+  }
+
+
+  String result = hourString + secondString + minuteString;
+
+  return result;
 }
 
 void writeAlarmToDisplayBuffer(boolean blinkOn){

  timeLastPressedMiddleButton = currentMillis;

  Serial.println("Middle Button Pressed");


}

  timeLastPressedLeftButton = currentMillis;

  Serial.println("Left Button Pressed");
  
  switch(currentState)
  {
  case ALARM: stopAlarm();
  break;
  case NORMAL :
  {
    showLCD = !showLCD;
    turnOffLCD();
    
  }
  break;
  case SETTING_ALARM:
  {
   if(settingAlarmProcess == A_HOUR){
       alarmHour = getNextHourFromCurrentHour(alarmHour, false);
    } else if(settingAlarmProcess == A_MINUTE){
       alarmMinute = getNextMinSecFromCurrentMinSec(alarmMinute, false);
    } else if(settingAlarmProcess == A_TYPE){
              
       if(!vibrate1 && !vibrate2){
          vibrate1 = true;
          vibrate2 = true;
       } else if(!vibrate1 && vibrate2){
          vibrate1 = false;
          vibrate2 = false;
       } else if(vibrate1 && !vibrate2){
         vibrate1 = false;
         vibrate2 = true;  
       } else {
          vibrate1 = true;
          vibrate2 = false;  
      }
   }
  
  }
  break;
  case SETTING_TIME:
  {
    DateTime now = RTC.now();
    DateTime newTime;
    switch(settingTimeProcess){
      case T_HOUR:
        newTime = DateTime(now.year(), now.month(), now.day(), getNextHourFromCurrentHour(now.hour(), false), now.minute(), now.second());
        break;
      case T_MINUTE:
        newTime = DateTime(now.year(), now.month(), now.day(), now.hour(), getNextMinSecFromCurrentMinSec(now.minute(), false), now.second());
        break;
      case T_SECOND:
        newTime = DateTime(now.year(), now.month(), now.day(), now.hour(), now.minute(), getNextMinSecFromCurrentMinSec(now.second(), false));
        break;
      case T_DAY:
        newTime = DateTime(now.year(), now.month(), now.day() - 1, now.hour(), now.minute(), now.second());
        break;
      case T_MONTH:
      {
        int month = now.month();
        if(month == 1){
          month = 12;
        } else {
          month--;
        }
      
        newTime = DateTime(now.year(), month, now.day(), now.hour(), now.minute(), now.second());
      }
        break;
      case T_YEAR:
        newTime = DateTime(now.year() - 1, now.month(), now.day(), now.hour(), now.minute(), now.second());
        break;
      default: break;
     
    }
       
    RTC.adjust(newTime);
  }
  break;
  default: break;
  }


}
