powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / При наличии номера недели получить дату начала и дату окончания этой недели
4 сообщений из 4, страница 1 из 1
При наличии номера недели получить дату начала и дату окончания этой недели
    #39524922
Margenal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как можно решить следующую задачу.

У меня есть номер недели например :не деля 38.

Мне нужно получить дату начала и дату окончания данной недели при вводе номера недели в textbox1.
Если в textbox1 ввести номер недели года, то в lebal1 и label2 должны отобразиться даты начала и конца недели.

Пытаюсь применить следующий код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public static DateTime GetFirstDateOfWeek(DateTime dayInWeek, DayOfWeek firstDay)
{
    DateTime firstDayInWeek = dayInWeek.Date;
    while (firstDayInWeek.DayOfWeek != firstDay)
        firstDayInWeek = firstDayInWeek.AddDays(-1);
 
    return firstDayInWeek;
}
public static DateTime GetLastDateOfWeek(DateTime dayInWeek, DayOfWeek firstDay)
{
    DateTime lastDayInWeek = dayInWeek.Date;
    while (lastDayInWeek.DayOfWeek != firstDay)
        lastDayInWeek = lastDayInWeek.AddDays(1);
 
    return lastDayInWeek;
}
...
Рейтинг: 0 / 0
При наличии номера недели получить дату начала и дату окончания этой недели
    #39524940
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут еще надо определиться, какая неделя в году номер 0, та которая уже наступила или та, которая наступ (1 января)
...
Рейтинг: 0 / 0
При наличии номера недели получить дату начала и дату окончания этой недели
    #39524957
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Margenal,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
/// <summary>
/// Converts a date to a week number.
/// ISO 8601 week 1 is the week that contains the first Thursday that year.
/// </summary>
public static int ToIso8601Weeknumber(this DateTime date)
{
    var thursday = date.AddDays(3 - date.DayOfWeek.DayOffset());
    return (thursday.DayOfYear - 1) / 7 + 1;
}

/// <summary>
/// Converts a week number to a date.
/// Note: Week 1 of a year may start in the previous year.
/// ISO 8601 week 1 is the week that contains the first Thursday that year, so
/// if December 28 is a Monday, December 31 is a Thursday,
/// and week 1 starts January 4.
/// If December 28 is a later day in the week, week 1 starts earlier.
/// If December 28 is a Sunday, it is in the same week as Thursday January 1.
/// </summary>
public static DateTime FromIso8601Weeknumber(int weekNumber, int? year = null, DayOfWeek day = DayOfWeek.Monday)
{
    var dec28 = new DateTime((year ?? DateTime.Today.Year) - 1, 12, 28);
    var monday = dec28.AddDays(7 * weekNumber - dec28.DayOfWeek.DayOffset());
    return monday.AddDays(day.DayOffset());
}

/// <summary>
/// Iso8601 weeks start on Monday. This returns 0 for Monday.
/// </summary>
private static int DayOffset(this DayOfWeek weekDay)
{
    return ((int)weekDay + 6) % 7;
}



Отседова
...
Рейтинг: 0 / 0
При наличии номера недели получить дату начала и дату окончания этой недели
    #39524966
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear()
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / При наличии номера недели получить дату начала и дату окончания этой недели
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]