Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lấy các ngày trong 1 tuần (int) bất kỳ của năm, làm sao đây?

  1. #1
    Ngày gia nhập
    01 2009
    Bài viết
    1

    Wink Lấy các ngày trong 1 tuần (int) bất kỳ của năm, làm sao đây?

    E đang làm 1 đề tài C#, trong đó em đang bí phần này.
    VD: đề bài đưa ra 1 ngày bất kỳ, code để tìm xem ngày đó thuộc tuần thứ mấy của năm. Và ngược lại, đưa ra 1 tuần bật kỳ trong năm (1 số int). Liệt kê danh sách các ngày trong tuần đó từ thứ 2 -> CN. Các bác giúp em với nhé.Thanks

  2. #2
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Để xử lý về lịch,thời gian trong C# bạn tìm hiểu System.Globalization.Còn yêu cầu của bạn có thể tham khảo thêm project này http://www.dynamicinternetsolutions..../cs110p07.html nó viết bằng Pascal ,nhưng bạn có thể xem để tham khảo giải thuật của nó
    Cánh Chym ứ mỏi

  3. #3
    Ngày gia nhập
    07 2010
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi daovietduy Xem bài viết
    E đang làm 1 đề tài C#, trong đó em đang bí phần này.
    VD: đề bài đưa ra 1 ngày bất kỳ, code để tìm xem ngày đó thuộc tuần thứ mấy của năm. Và ngược lại, đưa ra 1 tuần bật kỳ trong năm (1 số int). Liệt kê danh sách các ngày trong tuần đó từ thứ 2 -> CN. Các bác giúp em với nhé.Thanks
    Code search được trên net nsau:
    private void FillWeeks()
    {
    int intYear = 2008;

    cmbWeek.Items.Clear();

    if (intYear != -1)
    {
    DateTime StartDate = new DateTime(intYear, 1, 1);

    while (DatePart(DateInterval.WeekOfYear, StartDate) == 1)
    {
    StartDate = DateAndTime.DateAdd(DateInterval.Day, 1, StartDate);
    }

    DateTime SecondDate = DateAndTime.DateAdd(DateInterval.WeekOfYear, -1, StartDate);

    ListItem item;
    cmbWeek.ClearSelection();
    item = new ListItem("--Select Week --", "-1");
    cmbWeek.Items.Add(item);

    item = new ListItem("[1] " + SecondDate.ToString("dd-MMM-yyyy") + " to " + DateAndTime.DateAdd(DateInterval.Day, -1, DateAndTime.DateAdd(DateInterval.WeekOfYear, 1, SecondDate)).ToString("dd-MMM-yyyy"), "1");
    cmbWeek.Items.Add(item);

    item = new ListItem("[2] " + StartDate.ToString("dd-MMM-yyyy") + " to " + DateAndTime.DateAdd(DateInterval.Day, -1, DateAndTime.DateAdd(DateInterval.WeekOfYear, 1, StartDate)).ToString("dd-MMM-yyyy"), "2");
    cmbWeek.Items.Add(item);

    for (int i = 3; i <= 52; i++)
    {
    DateTime NewDate = DateAndTime.DateAdd(DateInterval.WeekOfYear, i - 2, StartDate);
    item = new ListItem("[" + i.ToString() + "] " + NewDate.ToString("dd-MMM-yyyy") + " to " + DateAndTime.DateAdd(DateInterval.Day, -1, DateAndTime.DateAdd(DateInterval.WeekOfYear, 1, NewDate)).ToString("dd-MMM-yyyy"), i.ToString());
    cmbWeek.Items.Add(item);
    }

    }
    else
    {
    //handle exception
    }
    }

    public static int DatePart(DateInterval Interval, DateTime DateValue)
    {
    return DateAndTime.DatePart(Interval, DateValue, Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
    }

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    14

    Code:
    /// <summary>
            /// Lấy ra thứ tự trong năm của tuần có chứa ngày nhập vào 
            /// với Culture mặc định là Culture hiện tại
            /// </summary>
            /// <param name="datetime">Ngày nhập vào</param>
            /// <returns>Trả về kiểu datetime là ngày đầu tuần, int là thứ tự của tuần hiện tại trong năm</returns>
            public static string GetWeekInYear(DateTime datetime, out DateTime FirstDayOfWeek,out int CurrentWeek)
            {
                string txt = "";
                CultureInfo myCI = new CultureInfo(System.Globalization.CultureInfo.CurrentCulture.LCID);//System.Globalization.CultureInfo.CurrentCulture.LCID lay theo he thong
                System.Globalization.Calendar myCal = myCI.Calendar;
    
                // Gets the DTFI properties required by GetWeekOfYear.
                CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule;
                DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
    
                // Displays the number of the current week relative to the beginning of the year.
                txt += string.Format("The CalendarWeekRule used for the current culture is {0}.", myCWR);
                txt += "<br>" + string.Format("The FirstDayOfWeek used for the current culture is {0}.", myFirstDOW);
               CurrentWeek=  myCal.GetWeekOfYear(DateTime.Now, myCWR, myFirstDOW);
               txt += "<br>" + string.Format("Therefore, the current week is Week {0} of the current year.", CurrentWeek);
                FirstDayOfWeek = DateTime.Now;
                while (FirstDayOfWeek.DayOfWeek != DayOfWeek.Monday) FirstDayOfWeek = FirstDayOfWeek.AddDays(-1); // tìm đầu tuần
                txt += "<br>" + string.Format("The FirstDayOfWeek  for the current week is {0}.", FirstDayOfWeek.ToString("dd/MM/yyyy"));
    
                // Displays the total number of weeks in the current year.
                DateTime LastDay = new System.DateTime(DateTime.Now.Year, 12, 31);
                txt += "<br>" + string.Format("There are {0} weeks in the current year ({1}).", myCal.GetWeekOfYear(LastDay, myCWR, myFirstDOW), LastDay.Year);
                return txt;
            }
    Code chuẩn từ Microsoft chính xác

Các đề tài tương tự

  1. Algorithm Tính số năm, tháng, tuần, ngày giữa 2 DateTime như thế nào?
    Gửi bởi mvmanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 25-10-2012, 07:23 PM
  2. Bài tập C++ In thứ trong tuần khi nhập ngày/tháng/năm. Sửa lỗi giúp em với.
    Gửi bởi love_you_4rever trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-09-2012, 12:01 AM
  3. Nhập vào 1 tháng của năm bất kì, in ra lịch theo tuần tương ứng của tháng đó.
    Gửi bởi longtth trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 07-12-2011, 09:22 PM
  4. Xác định là thứ mấy trong tuần khi biết ngày tháng năm với lập trình C#
    Gửi bởi phongk20 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 04-03-2011, 06:58 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn