C# 在文本文件中搜索日期,并枚举所有日期,只输出高于第一个日期的日期
我正在将文本文件读取到列表中,并将行号添加到输出中。我想搜索MM/Day/Year格式的日期并将其输出到控制台。如果文本文件中的下一个日期与找到的上一个日期相同,则我不想输出它,我只想输出比上一个日期晚的日期。我是编程新手,在网站上搜索了日期搜索代码,但没有找到我理解的东西。这是我目前的代码C# 在文本文件中搜索日期,并枚举所有日期,只输出高于第一个日期的日期,c#,C#,我正在将文本文件读取到列表中,并将行号添加到输出中。我想搜索MM/Day/Year格式的日期并将其输出到控制台。如果文本文件中的下一个日期与找到的上一个日期相同,则我不想输出它,我只想输出比上一个日期晚的日期。我是编程新手,在网站上搜索了日期搜索代码,但没有找到我理解的东西。这是我目前的代码 internal class LineInformation { public int Index { get; set; } public string L
internal class LineInformation
{
public int Index { get; set; }
public string Line { get; set; }
}
static void Main(string[] args)
{var fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "doc.txt");
var theWholeFile = File.ReadLines(fileName)
.Select((line, index) => new LineInformation { Line = line, Index = index }).ToList();
现在我不知道如何专门搜索上述日期格式并将其写入控制台。我如何声明一个日期格式,如MM/Day/Year,然后说:
if(line.Contains(date)=>1stdate)
{Console.WriteLine(date)}
如果您只需要将当前日期与最后一个日期进行比较,如果最后一个日期大于当前日期,则忽略当前日期,那么您可以这样做。希望能有帮助
var fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "doc.txt");
var theWholeFile = File.ReadLines(fileName)
.Select((line, index) => new LineInformation { Line = line, Index = index}).ToList();
var lastValue = string.Empty;
foreach (var x in theWholeFile)
{
//The first date will be printed no matter what
if (lastValue == string.Empty)
{
Console.WriteLine(DateTime.ParseExact(x.Line,"mm/dd/yyyy", CultureInfo.InvariantCulture));
lastValue = x.Line;
}
else
{
if (DateTime.Parse(x.Line) > DateTime.Parse(lastValue))
{
Console.WriteLine(DateTime.ParseExact(x.Line, "mm/dd/yyyy", CultureInfo.InvariantCulture));
}
lastValue = x.Line;
}
}
我可能会从正则表达式开始,将其拆分为包含日期的行,除非这样,然后转换正则表达式找到的日期并进行比较。谢谢@BugFinder,我会看看正则表达式,看看我能学到什么。我真的不明白你在说什么,但我会去仔细阅读。你没有包括输入和期望的输出。我猜你只需要在每一行中找到datetime(
Substring()
如果位置已知,Split
+index/logic或regex),然后将其与datetime()
的实例进行比较(例如var firstDate=datetime.Today.AddDays(-1);
)@Sinatr如果我的描述不太清楚,我想在文本文件中搜索mm/dd/yyy格式的日期。我知道如何读取文本文件和搜索关键字,但我不知道如何搜索mm/dd/yyyy的日期格式。文件中有很多重复的日期,但我只希望所有日期都重复一次(不重复)。然后,当我使用Console.WriteLine时,我希望看到所有没有重复日期的日期。这可能不容易,最好是您显示此输入文件的一部分,以便有人能给您提供好的建议。应该有一个模式来识别日期时间(例如,通常您可以尝试使用那些太斜杠:mm/
dd/
yyyy,以及之前的知识,第一个斜杠是01-12之间的数字,然后是另一个01-31,然后是4位数的年份。)