สอบถามเรื่องการ Search Date ด้วย รูปแบบของ Week ครับ
Code (C#)
public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear)
{
DateTime jan1 = new DateTime(year, 1, 1);
int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;
DateTime firstThursday = jan1.AddDays(daysOffset);
var cal = CultureInfo.CurrentCulture.Calendar;
int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
var weekNum = weekOfYear;
if (firstWeek <= 1)
{
weekNum -= 1;
}
var result = firstThursday.AddDays(weekNum * 7);
return result.AddDays(-3);
}
Date :
2016-03-01 14:34:26
By :
mr.win
เอามาจาก Internet และจำไม่ได้แล้วว่าเอามาจากไหน?
--- ไม่เคยใช้งานเลย ไม่แน่ใจว่ามันถูกต้องในทุกฯกรณีหรือไม่
Usage:
var x = getDateOfWeek(52, "F");
var y = getDateOfWeek(52, "L");
Code (C#)
public static System.DateTime getDateOfWeek(int intYear, int intWeek, string F_OR_L = "F")
{
System.DateTime _1stPeriod = new System.DateTime(intYear, 1, 1);
int dow = Convert.ToInt32(_1stPeriod.DayOfWeek);
return F_OR_L == "F" ? _1stPeriod.AddDays(((intWeek - 1) * 7) - dow) : (_1stPeriod.AddDays(((intWeek - 1) * 7) - dow)).AddDays(6);
}
Code (VB.NET)
Public Shared Function getDateOfWeek(ByVal intYear As Integer, ByVal intWeek As Integer, Optional ByVal F_OR_L As String = "F") As Date
Dim _1stPeriod As New Date(intYear, 1, 1)
Dim dow As Integer = CInt(_1stPeriod.DayOfWeek)
Return If(F_OR_L = "F", _1stPeriod.AddDays(((intWeek - 1) * 7) - dow), (_1stPeriod.AddDays(((intWeek - 1) * 7) - dow)).AddDays(6))
End Function
Date :
2016-03-02 08:31:46
By :
หน้าฮี
Date :
2016-03-02 09:11:34
By :
mr.win
Load balance : Server 01