22. tétel: Eltelt napok számolása

Feladat: Írjon egy programot szöveges környezetben, mely beolvas a VERCUKOR.TXT fájlból adatsorokat. 1 adatsor 1 sorból olvasható. Minden adatsor a következőket tartalmazza: mérés dátuma, a hét napja, napszak, mért érték (ponttal elválasztva). Az egyes adatok üres hellyel vannak elválasztva.
Írja ki a képernyőre, hogy hány mérés történt! Számolja meg, hogy hány nap telt el az egyes mérések között és írja is ki a képernyőre, majd az eltelt napok átlagát is – két tizedesjegyre kerekítve!
Feltételezheti, hogy a fájl létezik, legalább 2 sor van benne, maximum 100 adatsor várható. Az adatok valódiságát nem kell ellenőriznie. A működő programot és a kódot mutassa be tanárának!

Egy lehetséges megoldás Visual C# nyelven:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;            //Ez kell a fájlműveletekhez

namespace 22tetel
{
    class Program
    {
        struct meres       //Így könnyebb lesz eltárolni a beolvasott adatokat
        {
            public string datum;
            public string hetnapja;
            public string napszak;
            public DateTime datumom;
        }

        static void Main(string[] args)
        {
            // 22. tétel: Eltelt napok számolása
            StreamReader bevisz = new StreamReader("VERCUKOR.TXT");
            meres[] adat = new meres[100];
            string s;               //Beolvasáshoz segédváltozó
            int szamol = 0;           //Adatsorokat számolja meg. 
            string[] reszek = new string[6];        //Tördeléshez ideális segítség
            do
            {
                szamol++;
                s = bevisz.ReadLine();
                reszek = s.Split(' ');
                adat[szamol].datum = reszek[0];
                adat[szamol].hetnapja = reszek[1];
                adat[szamol].napszak = reszek[2];
                adat[szamol].datumom = DateTime.Parse(adat[szamol].datum);        //Átkonvertálás dátumra
            }
            while (!bevisz.EndOfStream);
            bevisz.Close();
            Console.WriteLine("\nBeolvasott mérések száma: {0}", szamol);
            Console.WriteLine("\nMérések között eltelt napok:");
            double eltelt;
            double ossz = 0;        //Összesítéshez segédváltozó
            for (int i = 2; i <= szamol; i++)
            {
                eltelt = (adat[i].datumom - adat[i - 1].datumom).TotalDays;     //Eltelt napok számolása
                Console.Write("{0} ", eltelt);
                ossz += eltelt;
            }
            Console.WriteLine("\nKét mérés között eltelt átlagos idő: {0,5:.00}",ossz/(szamol-1));

            Console.WriteLine("\n\nA program futása véget ért!");
        }
    }
}

A VERCUKOR.TXT fájl egy lehetséges tartalma:
Lásd a 18. tételnél!