【问题标题】:How can I iterate through an array of days in a year in C#?如何在 C# 中遍历一年中的天数?
【发布时间】:2014-10-02 11:28:52
【问题描述】:

T。学生和我有这个挑战来创建一个程序(在 C# 中)来计算一年中经过的天数,而不使用 DayOfYear 属性,我正在使用带有日期时间选择器的 Windows 窗体应用程序来选择日期计算一下,这是我到目前为止得到的,它不起作用,有什么建议吗?

    private void dtmSelectedDate_ValueChanged(object sender, EventArgs e)
    {
        DaysSoFarThisYear();
    }

    private void DaysSoFarThisYear()
    {
        int daysInMonth = dtmSelectedDate.Value.Day;
        int monthInYear = dtmSelectedDate.Value.Month;
        int daysSoFar = 0;

        int[,] daysOfYear = new int[daysInMonth, monthInYear];

        for (int row = 0; row < daysOfYear.GetLength(0); row++)
        {
            for (int col = 0; col < daysOfYear.GetLength(1); col++)
            {
                daysSoFar++;
            }
        }

        txtCalculated.Text = Convert.ToString(daysSoFar);

       // DateTime dayOfYear = new DateTime(dtmSelectedDate.Value.Year, dtmSelectedDate.Value.Month, dtmSelectedDate.Value.Day);
       // txtFromNET.Text = Convert.ToString(dayOfYear.DayOfYear);
    }
}

【问题讨论】:

  • 简单是一种美德,我的朋友............你正在重新创建 .NET 已经(以某种方式)提供的代码。

标签: c# arrays loops datetime


【解决方案1】:

你可以试试这个

TimeSpan time= DateTime.Now.Subtract(new DateTime(DateTime.Now.Year, 01, 01));
int numberOfDays = time.Days;

【讨论】:

  • 好技巧,但你必须增加一天或减去一个新的 DateTime(DateTime.Now.Year-1,12,31) 否则你会得到错误的天数。例如01.01.2014 - 01.01.2014 = 0 但仍然是一年中的第一天
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2019-08-17
相关资源
最近更新 更多