Changing sprites of a 2D object in C#, Can't figure it out!

I’m trying to make a simple day/night transparent filter, first I get the feeling that I’m using an ineffective and long code, secondly the only change that happens is when sec = 0, I can’t figure out why, help is appreciated.

float sec = 45f;
	float valueToIncreaseEverySec = 1;
	float min = 0;

	public Sprite n1;
	public Sprite n2;
	public Sprite n3;
	public Sprite n4;
	public Sprite n5;

	SpriteRenderer sr;

	void Start ()
	{
		sr = GetComponent<SpriteRenderer> ();
	}


	void Update()
	{
		sec += valueToIncreaseEverySec * Time.deltaTime;
		print (sec);
		if (sec >= 60) {
			min++;
			sec = 0;
			print (min);
		}

		if (sec == 50f) {
			sr.sprite = n1;
		} 

		if (sec == 52.5f) {
			sr.sprite = n2;
		} 

		if (sec == 55f) {
			sr.sprite = n3;
		} 

		if (sec == 57.5f) {
			sr.sprite = n4;
		} 

		if (sec == 0f) {
			sr.sprite = n5;
		} 

		if (sec == 2.5f) {
			sr.sprite = n4;
		} 

		if (sec == 5f) {
			sr.sprite = n3;
		} 

		if (sec == 7.5f) {
			sr.sprite = n2;
		} 

		if (sec == 10f) {
			sr.sprite = n1;
		} 

		if (sec == 12.5f) {
			sr.sprite = null;
		}

well sec will never be accurate, so that you can compare if(sec == 52.5){//soemthing happens}

a way to go is to give it a range, where it’d be a valid range where the sprite can be displayed like this:

if(sec >= 0 && sec < 5){
  sprite = sprite1;}
if(sec >= 5 && sec < 12.3f){
   sprite = sprite2;}
 //pseudo code
 // this is just for getting you an idea what i mean