Timer Countdown fix.

I have a Timer Script that is suppose to count down instead of up but i messed up somewhere. I just need help changing it to be from going up to going down. but I am having a hard time trying to figure out how to switch it. It may be simple but i am missing it. I am still pretty new to C#
;

public class timerText : MonoBehaviour {

    private float count;
    public Text timeText;
    private bool finish = false;

	// Use this for initialization
	void Start () {
        //timeText = GetComponent<Text>();
        count = Time.time;
	}
	
	// Update is called once per frame
	void Update () {
        //count -= Time.deltaTime;
        //timeText.text = count.ToString("f0");
        //print(count);
        if (finish) return;

        float t = Time.time - count;
        string minutes = ((int)t / 60).ToString();
        string seconds = (t % 60).ToString("f2");

        timeText.text = minutes + ":" + seconds;

        if (minutes == "1") Done();
	}

    public void Done ()
    {
        finish = true;
        timeText.color = Color.red;
    }
}

Timer class

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;

public class Timer
{
	/// <summary>
	/// Runs the timer.
	/// </summary>
	/// <returns>The timer.</returns>
	/// <param name="from">From.</param>
	/// <param name="to">To.</param>
	/// <param name="interval">Interval.</param>
	/// <param name="onTimer">On timer.</param>
	public IEnumerator RunTimer(float from, float to, float interval, UnityAction<bool, float> onTimer)
	{
		float dir = Mathf.Sign (to - from);
		float currTime = from;
		onTimer (false, currTime);
		if (dir == 1) 
		{
			while (currTime < to) 
			{
				yield return new WaitForSeconds (interval);
				currTime += interval * dir;
				onTimer (false, currTime);
			}
		}
		else
		{
			while (currTime > to) 
			{
				yield return new WaitForSeconds (interval);
				currTime += interval * dir;
				onTimer (false, currTime);
			}
			
		}
		onTimer (true, currTime);
	}
}

Timer test

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour 
{
	public Text txt;

	public void Start()
	{
        Timer timer = new Timer();
		StartCoroutine (timer.RunTimer(0, 20, 1, OnTimer));
	}

	/// <summary>
	/// Raises the timer event.
	/// </summary>
	/// <param name="isCompleted">If set to <c>true</c> is completed.</param>
	/// <param name="currentValue">Current value.</param>
	public void OnTimer(bool isCompleted, float currentValue)
	{
		if (isCompleted)
		{
			Debug.Log ("Timer completed");
		}
		txt.text = currentValue.ToString();
	}
}

What do you want to count down from?

Easiest way would be to set a float to the time you want to count from, i.e.
float timer = 30; - would give you a 30 second timer.

and then in update subtract Time.deltaTime from timer:

timer -= Time.deltaTime;

Time.time returns time passed since level (or is it application?) load, so if you continually use Time.time from start of the scene load, and subtract current Time.time, like you are doing now, you get the time passed since level load, which can only go up.