获取两个选定日期之间的星期几
Get days of week between two selected dates
我有两个datetimepickers
。所以我想得到所选值之间的星期几。
示例:date1 = 14/1/2015
和 date2 = 17/1/2015
所以结果应该是:days = Wed. Thu. Fri. Sat.
您可以轻松地迭代您的 DateTime
值,例如;
var dt1 = new DateTime(2015, 1, 14);
var dt2 = new DateTime(2015, 1, 17);
while (dt2 >= dt1)
{
Console.WriteLine(dt1.DayOfWeek);
dt1 = dt1.AddDays(1);
}
结果将是;
Wednesday
Thursday
Friday
Saturday
如果你想要他们的 abbreviated day names as Wed, Thu, Fri, Sat
, you can use "ddd"
custom format specifier with a english-based culture (like InvariantCulture
) 赞;
var dt1 = new DateTime(2015, 1, 14);
var dt2 = new DateTime(2015, 1, 17);
while (dt2 >= dt1)
{
Console.WriteLine(dt1.ToString("ddd", CultureInfo.InvariantCulture));
dt1 = dt1.AddDays(1);
}
您想获取两个日期之间所有 DateTime
的 DayOfWeek
吗?
int daysDiff = (date2 - date1).Days;
List<DayOfWeek> days = Enumerable.Range(0, daysDiff + 1) // +1 because you want to include start and end date
.Select(d => date1.AddDays(d).DayOfWeek)
.ToList();
您需要添加using System.Linq;
另一种选择,包括不常用的 for 循环和 yield return
语句:
void Main()
{
var daysOfWeek = DaysBetween(
new DateTime(2015, 1, 14),
new DateTime(2015, 1, 17));
Console.WriteLine(
String.Join(", ", daysOfWeek.Select(d => d.ToString().Substring(0, 3))));
// prints: Wed, Thu, Fri, Sat
}
IEnumerable<DayOfWeek> DaysBetween(DateTime start, DateTime end)
{
for (var dateTime = start; dateTime <= end; dateTime = dateTime.AddDays(1))
{
yield return dateTime.DayOfWeek;
}
}
我有两个datetimepickers
。所以我想得到所选值之间的星期几。
示例:date1 = 14/1/2015
和 date2 = 17/1/2015
所以结果应该是:days = Wed. Thu. Fri. Sat.
您可以轻松地迭代您的 DateTime
值,例如;
var dt1 = new DateTime(2015, 1, 14);
var dt2 = new DateTime(2015, 1, 17);
while (dt2 >= dt1)
{
Console.WriteLine(dt1.DayOfWeek);
dt1 = dt1.AddDays(1);
}
结果将是;
Wednesday
Thursday
Friday
Saturday
如果你想要他们的 abbreviated day names as Wed, Thu, Fri, Sat
, you can use "ddd"
custom format specifier with a english-based culture (like InvariantCulture
) 赞;
var dt1 = new DateTime(2015, 1, 14);
var dt2 = new DateTime(2015, 1, 17);
while (dt2 >= dt1)
{
Console.WriteLine(dt1.ToString("ddd", CultureInfo.InvariantCulture));
dt1 = dt1.AddDays(1);
}
您想获取两个日期之间所有 DateTime
的 DayOfWeek
吗?
int daysDiff = (date2 - date1).Days;
List<DayOfWeek> days = Enumerable.Range(0, daysDiff + 1) // +1 because you want to include start and end date
.Select(d => date1.AddDays(d).DayOfWeek)
.ToList();
您需要添加using System.Linq;
另一种选择,包括不常用的 for 循环和 yield return
语句:
void Main()
{
var daysOfWeek = DaysBetween(
new DateTime(2015, 1, 14),
new DateTime(2015, 1, 17));
Console.WriteLine(
String.Join(", ", daysOfWeek.Select(d => d.ToString().Substring(0, 3))));
// prints: Wed, Thu, Fri, Sat
}
IEnumerable<DayOfWeek> DaysBetween(DateTime start, DateTime end)
{
for (var dateTime = start; dateTime <= end; dateTime = dateTime.AddDays(1))
{
yield return dateTime.DayOfWeek;
}
}