Kod:
var sonuc = from DataRow row in dt.Rows
where Convert.ToDateTime(row["Tarih"]) == Convert.ToDateTime("tarih_parametresi")
select dt.Rows.IndexOf(row) > 0 ? ((int)row["T1"] - (int)(dt.Rows[dt.Rows.IndexOf(row) - 1]["T1"])) * 5670 * 0.95 : (int)(row["T1"]) * 5670 * 0.95;
Tarih alanları sıralı olduğu ve ardarda geldiği için işin kolayına kaçtım. Bir önceki günün verisini dt.Rows[dt.Rows.IndexOf(row) - 1]["T1"] şeklinde aldım. T2 ve T3 alanlarını da aynı mantıkla select ifadesinin içine uygulayabilirsin istediğin şekilde.