gpt4 book ai didi

c# - 如何在 C# 中读取格式为 day.month.year 的日期?

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:26 24 4
gpt4 key购买 nike

我想以日.月.年的格式从控制台读取日期。
例如,

startDate = 1.05.2016 

secondDate = 5.05.2016

当我运行我的代码并输入它们时,我得到了 System.FormatException。我如何阅读它们?

var startDate = DateTime.ParseExact(Console.ReadLine(), "dd.m.yyyy", CultureInfo.InvariantCulture);
var endDate = DateTime.ParseExact(Console.ReadLine(), "dd.m.yyyy", CultureInfo.InvariantCulture);

最佳答案

两件事;

  1. 您需要使用 the "d" format specifier而不是 dd,因为您的个位数天数有前导零。
  2. 自定义日期和时间说明符区分大小写。 mmm 是分钟,但是 MMM 是月。

根据您的输入,d.MM.yyyy 似乎是要解析的正确格式。

I'm given a program (existing source code) that aims to count the non-working days between two dates given in format day.month.year (e.g. between 1.05.2015 and 15.05.2015 there are 5 non-working days – Saturday and Sunday). I don't know how to read them from the console

这很简单。首先,您需要从开始日期到结束日期进行迭代。其次,按照我告诉你的那样解析你当前的日期。然后检查您的 DateTimeDayOfWeek property .如果是 SaturdaySunday,则为非工作日。将计数器加 1。

一个完整的例子;

static void Main(string[] args)
{
DateTime startDate = DateTime.ParseExact(Console.ReadLine(), "d.MM.yyyy", CultureInfo.InvariantCulture);
DateTime endDate = DateTime.ParseExact(Console.ReadLine(), "d.MM.yyyy", CultureInfo.InvariantCulture);

Console.WriteLine($"There are {EachNonWorkingDay(startDate, endDate).Count()} non-working days");
}

private static IEnumerable<DateTime> EachNonWorkingDay(DateTime fromDate, DateTime toDate)
{
for (var day = fromDate.Date; day.Date <= toDate.Date; day = day.AddDays(1))
{
if (day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday)
{
yield return day;
}
}
}

enter image description here

关于c# - 如何在 C# 中读取格式为 day.month.year 的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54168788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com