我有这个代码:
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)