Building a clock. Need some guidance
When working with modes and states, I strongly advice you to use while loops. 

So a start would be something like this:

#define up_button 0
#define down_button 1
#define set_button 2
#define leave_set_button 3

main_loop(){

    read_RTC_clock();
    //Through spi or i2c or what have you

    write_RTC_clock_to_display(); 
    //To the LCD or OLED display

    read_button_states(); 
    //Update the input_port variable

    if(input_port&amp;set_time_button){
        while(!input_port&amp;leave_set_button){//"and" out the leave button
            //If you are in this loop, then you will stay in here
            //until the user chooses to leave.

            //so we better make it possible for the user to leave by
            //reading the inputs and updating the button status

            read_button_states(); 
            //Update the input_port variable

            switch(input_port){
                case up_button|down_button: 
                //up_button|down_button means that
                // I press both simultaneously
                increment_step = 60/increment_step;
                //if increment_step is 60, then it's now 1 second
                //if increment_step is 1, then it's now 60 seconds
                break;
                case up_button: time+=increment_step; break;                    
                case down_button: time-=increment_step; break;
            }

            //and why not show the LED or OLED what we're doing
            write_settings_to_display();
        }
        write_time_to_RTC_clock();//update the RTC with the time we set
    }
}


I won't write more... but... this is how I would start the project. I would also debounce the buttons in software. I would also ask myself how many buttons I really want, the more buttons the easier it is to use. It could work with only 2 buttons, but then you need to use some timing so if you hold one button down for 1 second it means something different than if you just tap it for 10 milliseconds.