Mathf.Lerp is just jumping to maximum, no 5.0 interpolation.

#pragma strict

private var LightState : String = "Off";

function Start(){
	light.intensity = 0.0;
}

function Update () {

	if(GC.hour > 17.5){
		if(LightState == "Off"){
			light.intensity = Mathf.Lerp(0.0,1.0,5.0);    <---------------------
			if(light.intensity == 1.0){
				LightState = "On";
			}
		}
	}
	if(GC.hour > 5.5 && GC.hour < 15.5){
		if(LightState == "On"){
			light.intensity = Mathf.Lerp(1.0,0.0,5.0);    <---------------------
			if(light.intensity == 0.0){
				LightState = "Off";
			}
		}
	}

}

What gives?
It must be something I don’t know about as I can’t be much different from the script reference. I thought this was a simple function but it’s not performing as expected. ~Confused~

From the documentation.

The t parameter is what you use to control the resulting value. t always varies between 0 and 1. It returns a value that’s t percent between the from and to values that you pass in. For example, when t is 0, the function returns the from value. When t is 1, it returns the to value. When t is 0.5 it returns a value halfway between from and to.

You’ll note that the documentation states that t is clamped between 0 and 1. So you when you pass in 5, the function converts it to 1, and returns the to value.