Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Количество недель в месяце / 25 сообщений из 39, страница 1 из 2
29.03.2012, 17:43
    #37730076
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Не подскажите как посчитать количество недель в конкретном месяце конкретного года
Спасибо
...
Рейтинг: 0 / 0
29.03.2012, 18:36
    #37730196
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Сначала абсолютно точно сформулируйте, что такое "количество недель" в данном случае, и что такое "неделя" опять же в данном случае...
А то, например, если надо полные недели без учёта дня недели - то всегда ровно четыре.
...
Рейтинг: 0 / 0
29.03.2012, 18:44
    #37730207
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Chek_FedorНе подскажите как посчитать количество недель в конкретном месяце конкретного года
Спасибо
Возьми timestamp начала первого числа одного месяца и timestamp начала первого числа следующего месяца. Разница - количество секунд в интересующем тебя месяце. Делай с ними что хочешь. А что такое "кол-во недель" понятно только тебе и определяется задачей, которую ты решил не озвучивать, видимо, подразумевая, что твоя задача не только в твоей голове, а и в наши астрально передается в момент создания темы на форуме =)
...
Рейтинг: 0 / 0
29.03.2012, 18:53
    #37730219
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
По моему поспешил с вопросом
Стал разбираться, смотрю на график проги сделанной не мной и не врубаюсь почему в ноябре, феврале, мае и августе стоит по пять недель в остальных четыре.
Так то вот сварганил, считает полные недели
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     int days = (datePicker1.SelectedDate.Value.Day-DateTime.DaysInMonth(datePicker1.SelectedDate.Value.Year, datePicker1.SelectedDate.Value.Month));
            int wholeWeeks = days / 7;
            int remainder = days % 7;
            
            string result = days + (Math.Abs(days) == 1 ? " day" : " days");
            
            if (Math.Abs(days) > 13)
                result += wholeWeeks.ToString();
            else
                result += wholeWeeks.ToString();


Теперь до завтра узнаю, что там да как в графике учебного процесса.
...
Рейтинг: 0 / 0
29.03.2012, 18:55
    #37730224
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Chek_FedorТак то вот сварганил, считает полные недели

Полных недель ВСЕГДА ЧЕТЫРЕ! )))))))
...
Рейтинг: 0 / 0
29.03.2012, 19:13
    #37730253
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Edd.DragonChek_FedorТак то вот сварганил, считает полные недели

Полных недель ВСЕГДА ЧЕТЫРЕ! )))))))
Ну да не так выразился, да и код этот считает кол-во недель от выбранной даты.
А мне, как оказалось, нужно посчитать общее кол-во недель и их даты. Так например в марте 5 недель
что то типа такого
Код: sql
1.
2.
3.
4.
5.
1. 1-4
2. 5-11
3. 12-18
4. 19-25
5. 26-31
...
Рейтинг: 0 / 0
29.03.2012, 19:19
    #37730263
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Полных недель ВСЕГДА ЧЕТЫРЕ! )))))))

В последнем феврале иногда три )
...
Рейтинг: 0 / 0
29.03.2012, 19:20
    #37730266
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Во, теперь понятно. В такой задаче и 6 недель может получиться. Если например, 1 день попадает в одну неделю, 28 - следующие 4 недели и еще 1 - 6-ая неделя.

В целом алгоритм следующий:
- берем номер первого дня месяца относительно начала года и вычисляем в какую неделю года он попадает.
- берем номер последнего дня месяца относительно начала года и вычисляем в какую неделю года он попадает.
- брем их разницу + 1.
...
Рейтинг: 0 / 0
29.03.2012, 19:21
    #37730268
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Aleksandr SharahovПолных недель ВСЕГДА ЧЕТЫРЕ! )))))))

В последнем феврале иногда три )
Тьху, полных действительно 3 может получиться....
...
Рейтинг: 0 / 0
29.03.2012, 19:23
    #37730271
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Нет, ну это если неделями считать не произвольных 7 дней, а именно как в уточненной задаче требуется. А имелось ввиду, что без уточнения в любом месяце 4 недели с хвостиком. С уточнением, понятно, от 3 до 6.
...
Рейтинг: 0 / 0
29.03.2012, 19:24
    #37730276
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Edd.DragonВо, теперь понятно. В такой задаче и 6 недель может получиться. Если например, 1 день попадает в одну неделю, 28 - следующие 4 недели и еще 1 - 6-ая неделя.

В целом алгоритм следующий:
- берем номер первого дня месяца относительно начала года и вычисляем в какую неделю года он попадает.
- берем номер последнего дня месяца относительно начала года и вычисляем в какую неделю года он попадает.
- брем их разницу + 1.
Спасибо завтра попробую.
...
Рейтинг: 0 / 0
29.03.2012, 20:29
    #37730348
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Aleksandr SharahovПолных недель ВСЕГДА ЧЕТЫРЕ! )))))))

В последнем феврале иногда три )
Полных - всегда четыре.
А вот полных, начинающихся с понедельника (или другого дня недели) - да, может быть и три.
...
Рейтинг: 0 / 0
30.03.2012, 12:12
    #37731134
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
AkinaAleksandr SharahovПолных недель ВСЕГДА ЧЕТЫРЕ! )))))))

В последнем феврале иногда три )
Полных - всегда четыре.
А вот полных, начинающихся с понедельника (или другого дня недели) - да, может быть и три.

Т.е. когда один программист спрашивает другого,
сколько полных недель в конкретном месяце,
отвечающий должен предположить,
что имеет дело с идиотом,
и ответить "4"?
...
Рейтинг: 0 / 0
30.03.2012, 16:33
    #37731821
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Aleksandr SharahovТ.е. когда один программист спрашивает другого, сколько полных недель в конкретном месяце, отвечающий должен предположить, что имеет дело с идиотом, и ответить "4"?
Отвечать на вопрос, услышав только треть вопроса? В этом случае спросивший будет точно знать, что имеет дело с идиотом.
...
Рейтинг: 0 / 0
30.03.2012, 19:12
    #37732157
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
AkinaAleksandr SharahovТ.е. когда один программист спрашивает другого, сколько полных недель в конкретном месяце, отвечающий должен предположить, что имеет дело с идиотом, и ответить "4"?
Отвечать на вопрос, услышав только треть вопроса? В этом случае спросивший будет точно знать, что имеет дело с идиотом.

Конечно, ведь иначе не ясно, о какой планете идет речь.
...
Рейтинг: 0 / 0
30.03.2012, 19:39
    #37732185
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Aleksandr SharahovТ.е. когда один программист спрашивает другого,
сколько полных недель в конкретном месяце,
отвечающий должен предположить,
что имеет дело с идиотом,
и ответить "4"?
Отвечающий может много чего предполагать. Толк от разговора настанет только после уточнений. Независимо от первичного предположения. При чем, отвечающий вовсе не обязан что-либо предполагать, чтобы ответить 4.

Вас когда время спрашивают, вы тоже таких людей за идиотов принимаете? Все может найтись причина, отличная от "идиот".
...
Рейтинг: 0 / 0
30.03.2012, 19:40
    #37732186
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
*Все
Всегда
...
Рейтинг: 0 / 0
30.03.2012, 20:23
    #37732220
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Edd.Dragon,

Тут все за уточнения. Но за разные стили ответа.
...
Рейтинг: 0 / 0
30.03.2012, 23:20
    #37732375
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Edd.DragonВо, теперь понятно. В такой задаче и 6 недель может получиться. Если например, 1 день попадает в одну неделю, 28 - следующие 4 недели и еще 1 - 6-ая неделя.

В целом алгоритм следующий:
- берем номер первого дня месяца относительно начала года и вычисляем в какую неделю года он попадает.
- берем номер последнего дня месяца относительно начала года и вычисляем в какую неделю года он попадает.
- брем их разницу + 1.
Как определить в какую неделю года попадает число месяца
...
Рейтинг: 0 / 0
30.03.2012, 23:25
    #37732389
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Chek_FedorКак определить в какую неделю года попадает число месяца
Посмотреть средства языка по части форматирования даты... бывает, там есть формат номера недели...
...
Рейтинг: 0 / 0
30.03.2012, 23:40
    #37732402
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Chek_FedorКак определить в какую неделю года попадает число месяца
Зависит от того, какими средствами по работе с датой располагаете.
Если нет функции типа "какой это день в году" или "какая это неделя в году", тогда берем timestamp начала первого января и timestamp начала нужного дня. Обычно это в секундах. В неделе 7 * 24 * 60 * 60 секунд. Делим разницу на это число - получаем что-то типа 35.44. Для другого дня получаем 38.01. 38 - 35 + 1 = 4. Т.е. месяц лежит в 35, 36, 37, 38 неделях (первая неделя в году при этом будет иметь номер 0).
...
Рейтинг: 0 / 0
30.03.2012, 23:52
    #37732426
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Chek_FedorКак определить в какую неделю года попадает число месяца

Сквозной номер недели, в который попадает дата, можно вычислить так

Код: pascal
1.
2.
3.
4.
  Day: TDateTime;
  WeekNo: integer;
...
  WeekNo:=(Trunc(Day)+5) div 7;



а, зная его для первого дня в году и текущего дня, легко вычислить разницу.
...
Рейтинг: 0 / 0
30.03.2012, 23:58
    #37732433
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
AkinaChek_FedorКак определить в какую неделю года попадает число месяца
Посмотреть средства языка по части форматирования даты... бывает, там есть формат номера недели...
Язык C#
...
Рейтинг: 0 / 0
04.04.2012, 16:09
    #37738693
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Подскажите как сформировать такое "чудо" пробую все это отобразить в ListBox
...
Рейтинг: 0 / 0
04.04.2012, 21:39
    #37739279
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество недель в месяце
Chek_Fedor,

Код: pascal
1.
2.
3.
4.
5.
  Day: TDateTime;
  WeekNo, DayNo: integer;
...
  WeekNo:=(Trunc(Day)+5) div 7;
  DayNo:=(Trunc(Day)+5) mod 7;



Здесь 0=пн, 1=вт, ... 6=вс
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Количество недель в месяце / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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