0

我有这个代码:

using System;
using System.Globalization;
using System.IO;

namespace TimeTress
{
    class Program
    {
        static void Main(string[] args)
        {
            var timelineCSV = GetListOfStringsFromTextFile("../../../../timeline.csv");
            var peopleCSV = GetListOfStringsFromTextFile("../../../../people.csv");

            var timeline = ReadData(timelineCSV);
            var people = ReadData(peopleCSV);

            //OutputString(timelineCSV);
            //OutputString(peopleCSV);

            //Console.WriteLine(DeltaMinAndMaxDate(timeline));
            //Console.WriteLine(GetMinAndMaxDate(timeline));

            Console.WriteLine(NamePeoples(people));
        }

        static (string,int) NamePeoples(string[][] people)
        {
            string names = null;
            int years = 0;

            foreach (var elements in people)
            {
                DateTime bitrthdayElement = ParseDate(elements[2]);
                var yearBirthday = bitrthdayElement.Year;
                var namePeople = elements[1];
                names = namePeople;
                years = yearBirthday;
                return (names, years);
            }

            return ("no",0);
        }

        static (int, int, int) DeltaMinAndMaxDate(string[][] timeline)
        {
            (DateTime minDate, DateTime maxDate) = GetMinAndMaxDate(timeline);
            return (maxDate.Year - minDate.Year,
                maxDate.Month - minDate.Month,
                maxDate.Day - minDate.Day);
        }

        static (DateTime, DateTime) GetMinAndMaxDate(string[][] timeline)
        {
            DateTime minDate = DateTime.MaxValue, maxDate = DateTime.MinValue;

            foreach (var timeEvent in timeline)
            {
                DateTime date = ParseDate(timeEvent[0]);

                if (date < minDate) minDate = date;
                if (date > maxDate) maxDate = date;
            }

            return (minDate, maxDate);
        }

        static string[] GetListOfStringsFromTextFile(string filePath)
        {
            string[] stringArray;

            if (File.Exists(filePath))
            {
                stringArray = File.ReadAllLines(filePath);
            }
            else
            {
                stringArray = new string[0];
            }

            return stringArray;
        }

        static void OutputString(string[] getString)
        {
            foreach (var lines in getString)
            {
                Console.WriteLine(lines);
            }
        }

        static string[][] ReadData(string[] array)
        {
            string[][] splitData = new string[array.Length][];

            for (var i = 0; i < array.Length; i++)
            {
                var line = array[i];
                string[] parts = line.Split(";");
                splitData[i] = parts;
            }

            return splitData;
        }

        static DateTime ParseDate(string value)
        {
            DateTime date;

            if (!DateTime.TryParseExact(value, "yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
            {
                if (!DateTime.TryParseExact(value, "yyyy-mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
                {
                    if (!DateTime.TryParseExact(value, "yyyy-mm-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
                    {
                        throw new Exception("WRONG FORMAT");
                    }
                }
            }

            return date;
        }
    }
}

方法NamePeoples仅输出第一个结果。但我需要让代码显示people.csv文件中记录的所有值,它们以 {count; 姓名; date},这个方法应该把它们都保存到一个变量中,目前有4行,那么这个方法应该是不同的,我不明白如何实现这个,从我们认为可以选择人名的数据中闰年出生的人。

可以通过调用此函数进行检查:

DateTime.IsLeapYear(yearBirthday)
4

0 回答 0