Bạn có thể sử dụng đoạn code sau để lấy về ngày đầu tiên trong tuần chứa 1 ngày được nhập vào.
Lưu ý là class CultureInfo nằm trong namespace System.Globalization, nên bạn cần using nó để sử dụng.
/// <summary>
/// Lấy ra ngày đầu tiên trong tuần của ngày nhập vào
/// với Culture mặc định là Culture hiện tại
/// </summary>
/// <param name="dayInWeek">Ngày nhập vào</param>
/// <returns>Ngày đầu tiên trong tuần</returns>
public static DateTime GetFirstDayOfWeek(DateTime dayInWeek)
{
CultureInfo defaultCultureInfo = CultureInfo.CurrentCulture;
return GetFirstDayOfWeek(dayInWeek, defaultCultureInfo);
}
/// <summary>
/// Lấy ra ngày đầu tiên trong tuần của ngày nhập vào
/// với một Culture cụ thể được truyền vào
/// </summary>
/// <param name="dayInWeek">Ngày nhập vào</param>
/// <param name="cultureInfo">CultureInfo quy định các thông tin về Culture
/// ( định dạng ngày tháng, ngày bắt đầu trong tuần , ... )
/// </param>
/// <returns></returns>
private static DateTime GetFirstDayOfWeek(DateTime dayInWeek, CultureInfo cultureInfo)
{
DayOfWeek firstDay = cultureInfo.DateTimeFormat.FirstDayOfWeek;
DateTime firstDayInWeek = dayInWeek.Date;
while (firstDayInWeek.DayOfWeek != firstDay)
{
firstDayInWeek = firstDayInWeek.AddDays(-1);
}
return firstDayInWeek;
}
/// <summary>
/// Lấy ra ngày đầu tiên trong tuần của ngày nhập vào
/// với 1 giá trị cụ thể của enum DayOfWeek chỉ định
/// ngày bắt đầu tuần là thứ mấy
/// </summary>
/// <param name="dayInWeek">Ngày nhập vào</param>
/// <param name="dayOfWeek">enum chỉ định thứ bắt đầu tuần</param>
/// <returns></returns>
private static DateTime GetFirstDayOfWeek(DateTime dayInWeek, DayOfWeek dayOfWeek)
{
DateTime firstDayInWeek = dayInWeek.Date;
while (firstDayInWeek.DayOfWeek != dayOfWeek)
{
firstDayInWeek = firstDayInWeek.AddDays(-1);
}
return firstDayInWeek;
}
Không có nhận xét nào:
Đăng nhận xét