matrix.setBrightness (05); //setting the brightness of the display here from 0-15matrix.writeDisplay(); // sending the new value to the display

}

Question 2

/* -- DS3231 Information -- */

char recv[BUFF_MAX]; //defines variable 'recv' as an array [] of characters, 'char', with up to 128 bytes, 'BUFF_MAX' (defined in line 11)
unsigned long prev; //stores the last time we received the time from the ds3231 module
int interval = 1000; //sets the time, in milliseconds, between requests sent to the ds3231 module

int displayBright = 9 //sets the hour that the display should turn brightint displayDim = 20 // sets the hour that the display should turn dim

I chose to display the different time at the top of each hour (minutes = 0) and for 10 seconds. In order to know that it was a different time, I also made the display blink.
Just before the end of the loop, I checked to see if the minutes were zero. I also checked to see if the seconds were equal to zero as well, so it would not continue to call the function after the first 10 seconds. If both are true ( && ), I called a function “secondTimeZone”

if(t.min == 0 && t.sec == 00)
{
secondTimeZone(currentTime, t.hour); //Here we send the current time and hour to the function
}
} // End of the void loop()