Digital clock

Is there a way I can program my uno board to run a digital clock at differing speeds? For example, runs on regular time for 12 hours, then runs on ½ regular time for three hours and then runs on fast time (+1 ½ normal speed) for 9 hours. If anyone knows a code to make this happen please let me know.

You can do what you describe if you do not need too much accuracy but it might help if you described why you want to do this as it might change the approach taken to achieve it.

It's for a project for a family member. More a proof of concept than anything which would eventually be applied to a wrist watch ARM cortex-M controller chip. Beyond that, I have no idea what his final project is.

This reminds me of a "joke clock" I had as an idea for a bar (pub). The idea is to make the clock run slightly fast in order to get customers to leave sooner.

Making a clock is pretty straightforward. Start with something like the Blink Without Delay sketch, but instead of turning an LED on or off, you make a number go up. ("Making a number go up" at a specific, fixed rate: that's pretty much the definition of a clock, isn't it?) In order to show the number, use the Serial monitor or something. If you have an LCD display panel or something, that's even better: you can use the display panel to show the numbers. (But for that, you will need to get the display panel working, which is a project in itself!) For now, you can just count seconds. Worry about minutes and hours later.

( Blink Without Delay sketch: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay )

To make the clock run faster or slower, you will need to look at this piece of the Blink Without Delay sketch.

// constants won't change :
const long interval = 1000;           // interval at which to blink (milliseconds)

Because you don't want the clock to always run at a constant rate, this will need to become:

long interval = 1000;           // interval at which to blink (milliseconds)

(I got rid of the const keyword.)
Then, you will be able to do things like this to change the rate of the clock.

interval = 900; // this speeds the clock up a little

interval = 200; // this speeds the clock up a lot

interval = 5000; // this makes the clock run very slowly

interval = 1000; // this makes the clock run at the correct, "honest" speed again

Have fun!

Since 12 + 3 + 9 totals 24 hours I guess the speed changes are supposed to be the same time each day.

12 hours (12*1)
1.5 hours (3 * 0.5)
13.5 hours (9 * 1.5)

That totals 27 hours a day. Are you sure he didn't want 1.16666... speed over the 9 hours to end the day at 24 hours? Unless there are no windows or other ways of telling time, someone is going to notice a 27-hour day.