C# 从开始日期到年底,每周五查找
所以我回来问另一个令人困惑的日期时间问题 在C#中,从开始日期(C# 从开始日期到年底,每周五查找,c#,datetime,C#,Datetime,所以我回来问另一个令人困惑的日期时间问题 在C#中,从开始日期(DateTime.Now)到今年年底,我如何返回每个星期五的(天) 例如,今天是19号星期五,它会返回,26,2,9,16,23,30,7等等。这会做你想做的事 IList<int> getFridaysForYearFromPoint(DateTime startDate) { DateTime currentFriday = startDate; List<int> results = n
DateTime.Now
)到今年年底,我如何返回每个星期五的(天)
例如,今天是19号星期五,它会返回,26,2,9,16,23,30,7等等。这会做你想做的事
IList<int> getFridaysForYearFromPoint(DateTime startDate)
{
DateTime currentFriday = startDate;
List<int> results = new List<int>();
//Find the nearest Friday forward of the start date
while(currentFriday.DayOfWeek != DayOfWeek.Friday)
{
currentFriday = currentFriday.AddDays(1);
}
//FIND ALL THE FRIDAYS!
int currentYear = startDate.Year;
while (currentFriday.Year == currentYear)
{
results.Add(startDate.Day);
currentFriday = currentFriday.AddDays(7);
}
return results;
}
IList getFridaysForYearFromPoint(日期时间开始日期)
{
DateTime currentFriday=开始日期;
列表结果=新列表();
//查找距开始日期最近的星期五
while(currentFriday.DayOfWeek!=DayOfWeek.Friday)
{
currentFriday=currentFriday.AddDays(1);
}
//找到所有的星期五!
int currentYear=起始日期年;
while(currentFriday.Year==currentYear)
{
结果。添加(开始日期:天);
currentFriday=currentFriday.AddDays(7);
}
返回结果;
}
这行吗
static IEnumerable<DateTime> GetFridays(DateTime startdate, DateTime enddate)
{
// step forward to the first friday
while (startdate.DayOfWeek != DayOfWeek.Friday)
startdate = startdate.AddDays(1);
while (startdate < enddate)
{
yield return startdate;
startdate = startdate.AddDays(7);
}
}
静态IEnumerable GetFridays(日期时间开始日期、日期时间结束日期)
{
//前进到第一个星期五
while(startdate.DayOfWeek!=DayOfWeek.Friday)
startdate=startdate.AddDays(1);
while(开始日期<结束日期)
{
产量回报起始日期;
startdate=startdate.AddDays(7);
}
}
var start=DateTime.Today;
var startDay=((int)start.DayOfWeek);
var nextFriday=startDay我的答案
static void Main(string[] args)
{
DateTime begin = DateTime.Now;
DateTime end = DateTime.Now.AddDays(200);
while (begin <= end)
{
if (begin.DayOfWeek == DayOfWeek.Friday)
Console.WriteLine(begin.ToLongDateString());
begin = begin.AddDays(1);
}
Console.ReadKey();
}
static void Main(字符串[]args)
{
DateTime begin=DateTime.Now;
DateTime end=DateTime.Now.AddDays(200);
而(begin您可以使用以下的日历周期收集器:
我是vb.net的专家,但也没什么不同
我在asp.net
web表单的page\u load
中编写了下面的代码
制作一个asp.net
应用程序
向其中添加一个web表单
将下面的代码写入page\u load
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim gc As New System.Globalization.GregorianCalendar
Dim d As New DateTime(gc.GetYear(DateTime.Now), 1, 1)
Dim i As Int16 = 1
While i <= gc.GetDaysInYear(gc.GetYear(DateTime.Now))
If gc.GetDayOfWeek(d) = DayOfWeek.Friday Then
Response.Write(d & "<br />")
d = gc.AddDays(d, 7)
i += 7
Else
d = gc.AddDays(d, 1)
i += 1
End If
End While
End Sub
Protected Sub Page_Load(ByVal sender作为对象,ByVal e作为System.EventArgs)处理Me.Load
Dim gc作为新系统.Globalization.GregorianCalendar
Dim d作为新的日期时间(gc.GetYear(DateTime.Now),1,1)
尺寸i为Int16=1
我的开始日期是星期五,还是你也需要计算出第一个星期五?我需要计算出第一个星期五,因为当我检查时,这一天并不总是星期五。
// ----------------------------------------------------------------------
public void FindRemainigYearFridaysSample()
{
// filter: only Fridays
CalendarPeriodCollectorFilter filter = new CalendarPeriodCollectorFilter();
filter.WeekDays.Add( DayOfWeek.Friday );
// the collecting period
CalendarTimeRange collectPeriod = new CalendarTimeRange( DateTime.Now, new Year().End.Date );
// collect all Fridays
CalendarPeriodCollector collector = new CalendarPeriodCollector( filter, collectPeriod );
collector.CollectDays();
// show the results
foreach ( ITimePeriod period in collector.Periods )
{
Console.WriteLine( "Friday: " + period );
}
} // FindRemainigYearFridaysSample
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim gc As New System.Globalization.GregorianCalendar
Dim d As New DateTime(gc.GetYear(DateTime.Now), 1, 1)
Dim i As Int16 = 1
While i <= gc.GetDaysInYear(gc.GetYear(DateTime.Now))
If gc.GetDayOfWeek(d) = DayOfWeek.Friday Then
Response.Write(d & "<br />")
d = gc.AddDays(d, 7)
i += 7
Else
d = gc.AddDays(d, 1)
i += 1
End If
End While
End Sub