Home > C# > C# – Lấy ngày đầu tiên trong tuần

C# – Lấy ngày đầu tiên trong tuần

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;
 }

( Link tham khảo : http://joelabrahamsson.com/entry/getting-the-first-date-in-a-week-with-c-sharp )

Advertisements
Categories: C#
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: