changing program for count down timer

i have downloaded this program it is in minuets and seconds 00:00 MM:SS

i want to change it to seconds and milliseconds 00:00 SS:mS mS

i have spent 5 evenings many hours researching how to do this

how easy will it be i am just getting into programming and have made 4 projects from getting started with arduino

i am fairly old and did not grow up with computers and electronics at school
i might seem dumb but hey i didn’t get the information through our education system
i just taught myself

here is the program i have

//constants for Control Pin

int controlPin = 13;
char currentTimeValue[4];
int currentState = 1;
int timerSeconds = 0;
int lpcnt = 0;

//define the keypad
const byte rows = 4;
const byte cols = 4;
char keys[rows][cols] = {

{‘1’,‘2’,‘3’,‘A’},
{‘4’,‘5’,‘6’,‘B’},
{‘7’,‘8’,‘9’,‘C’},
{’*’,‘0’,’#’,‘D’}
};

byte rowPins[rows] = {11,10,9,8};
byte colPins[cols] = {7,6,5,4};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
LiquidCrystal_I2C lcd(0x3F,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line
display

void setup()
{
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();

//display main screen
displayCodeEntryScreen();

//setup and turn off relay
pinMode(controlPin, OUTPUT);
digitalWrite(controlPin, LOW);

//setup default time to 00:00
currentTimeValue[0]=‘0’;
currentTimeValue[1]=‘0’;
currentTimeValue[2]=‘0’;
currentTimeValue[3]=‘0’;
showEnteredTime();
}

void loop()
{
int l;
char tempVal[3];
char key = keypad.getKey();

//key pressed and state is 1
if (int(key) != 0 and currentState == 1) {

switch (key) {
case ‘*’:
relayStatus(false);
currentTimeValue[0]=‘0’;
currentTimeValue[1]=‘0’;
currentTimeValue[2]=‘0’;
currentTimeValue[3]=‘0’;
showEnteredTime();
currentState = 1;

lpcnt = 0;
timerSeconds = 0;
break;

case ‘#’:
tempVal[0] = currentTimeValue[0];
tempVal[1] = currentTimeValue[1];
tempVal[2] = 0;

timerSeconds = atol(tempVal) * 60;

tempVal[0] = currentTimeValue[2];
tempVal[1] = currentTimeValue[3];
tempVal[2] = 0;

timerSeconds = timerSeconds + atol(tempVal);
currentState = 2;
break;

default:
currentTimeValue[0] = currentTimeValue[1];
currentTimeValue[1] = currentTimeValue[2];
currentTimeValue[2] = currentTimeValue[3];
currentTimeValue[3] = key;
showEnteredTime();
break;
}
}

if (currentState == 2) {
if (int(key) != 0) {
if (key == ‘*’) {
relayStatus(false);
displayCodeEntryScreen();
currentTimeValue[0]=‘0’;
currentTimeValue[1]=‘0’;
currentTimeValue[2]=‘0’;
currentTimeValue[3]=‘0’;
showEnteredTime();
currentState = 1;
lpcnt = 0;
timerSeconds = 0;
}
} else {

if (lpcnt > 9) {
lpcnt = 0;
–timerSeconds;
showCountdown();

if (timerSeconds <= 0) {
currentState = 1;
relayStatus(false);
displayCodeEntryScreen();
showEnteredTime();
} else {
relayStatus(true);
}
}

++lpcnt;
delay(100);
}
}
}

void showEnteredTime()
{
lcd.setCursor(14,3);
lcd.print(currentTimeValue[0]);
lcd.print(currentTimeValue[1]);
lcd.print(":");
lcd.print(currentTimeValue[2]);
lcd.print(currentTimeValue[3]);
}
void relayStatus(bool state)
{
if (state)
digitalWrite(controlPin, HIGH);
else
digitalWrite(controlPin, LOW);
}
void showCountdown()
{
char timest[6];\

lcd.setCursor(0,0);
lcd.print(“");
lcd.setCursor(0,1);
lcd.print("
COUNTING DOWN “);
lcd.setCursor(0,2);
lcd.print(”
“);
sprintf(timest, “%d:%.2d”, (timerSeconds/60), (timerSeconds - ((timerSeconds/60)*60)));
lcd.print(timest);
lcd.print(” ");
lcd.setCursor(0,3);
lcd.print("
”);

}

void displayCodeEntryScreen()
{
clearScreen();
lcd.setCursor(0,0);
lcd.print(“Let’s Make It Count”);
lcd.setCursor(0,1);
lcd.print(“Down Time…”);
lcd.setCursor(0,2);
lcd.print(“Enter Time mm:ss:”);
}

void clearScreen()
{
lcd.setCursor(0,0);
lcd.print(" “);
lcd.setCursor(0,1);
lcd.print(” “);
lcd.setCursor(0,2);
lcd.print(” “);
lcd.setCursor(0,3);
lcd.print(” ");
}

here is the program i have

Which is not posted correctly.
Why are there no comments in the code?
Why is the code so poorly indented? How much trouble is it really to press Ctrl-T now and then?

Instead of

 currentTimeValue[0]='0';
 currentTimeValue[1]='0';
 currentTimeValue[2]='0';
 currentTimeValue[3]='0';

use a for loop to save repeating lines.

for ( byte i = 0; i < 4; i++ ) // i = 0 is start; i < 4 is loop check; i++ is loop action
{
 currentTimeValue[ i ]='0'; // now i supplies the index
}