📜  如何在 c# 中获得一个月中的奇数星期六(1)

📅  最后修改于: 2023-12-03 15:38:13.701000             🧑  作者: Mango

如何在 C# 中获得一个月中的奇数星期六

在 C# 中获取一个月中的奇数星期六可以使用 DateTime 类库中的一些方法来实现。以下是一个实现的示例代码片段:

// 获取当前月份
var currentMonth = DateTime.Now.Month;

// 构建当前月份的第一天
var firstDayOfMonth = new DateTime(DateTime.Now.Year, currentMonth, 1);

// 获取当前月份的第一个星期六
var firstSaturdayOfMonth = firstDayOfMonth.AddDays(6 - (int)firstDayOfMonth.DayOfWeek);

// 计算当前月份中奇数星期六的日期
var oddSaturdays = new List<DateTime>();
for (int i = 1; i <= 31; i += 14)
{
    var oddSaturday = firstSaturdayOfMonth.AddDays(i);
    if (oddSaturday.Month != currentMonth) break;
    oddSaturdays.Add(oddSaturday);
}

// 输出结果
Console.WriteLine("奇数星期六:");
foreach (var saturday in oddSaturdays)
{
    Console.WriteLine(saturday.ToShortDateString());
}
代码解释
  1. 首先获取当前的月份:var currentMonth = DateTime.Now.Month;
  2. 构建当前月份的第一天:var firstDayOfMonth = new DateTime(DateTime.Now.Year, currentMonth, 1);。这里使用 DateTime.Now.Year 是为了避免在跨年时出现错误。
  3. 获取当前月份的第一个星期六:var firstSaturdayOfMonth = firstDayOfMonth.AddDays(6 - (int)firstDayOfMonth.DayOfWeek);。这里使用 firstDayOfMonth.DayOfWeek 获取当前月份的第一天是星期几,从而计算出第一个星期六的日期。
  4. 计算当前月份中所有奇数星期六的日期:for (int i = 1; i <= 31; i += 14)。这里使用循环计算每一个奇数星期六的日期,直到当前月份中没有奇数星期六为止。
  5. 输出计算结果:Console.WriteLine(saturday.ToShortDateString());。这里使用 ToShortDateString() 方法将日期格式化为短日期字符串输出。
总结

在 C# 中获取一个月中的奇数星期六可以使用 DateTime 类库中的多个方法来实现。这里我们使用了 DateTime.Now.MonthDateTime.Now.YearDateTime.DayOfWeek 等多个方法来计算星期六的日期。这里需要注意,在跨年时需要正确的处理年份。