   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;
+  }
 
 
 }

int getVoltageADCReading(){
  return analogRead(VOLTAGE_MEASURE_PIN); 
}
void processLeftButtonPressed(){
  unsigned long currentMillis = millis();


unsigned long timeLastPressedMiddleButton;
unsigned long timeLastPressedRightButton;


boolean vibrate1 = false;
boolean vibrate2 = false;

boolean previousBlinkState;
unsigned long previousBlinkTime;
