С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 15

Определить количество воскресений между двумя введенными датами

25.11.2013, 19:19. Показов 3458. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помомгите пожалуйста! Нужно определить сколько воскресений между датами введенными по запросу программы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2013, 19:19
Ответы с готовыми решениями:

Количество месяцев и дней между двумя датами в четырех ячейках
Помогите пожалуйста переделать макрос. Нужно что бы работал с 1-го по 20-й листы, Данные сравнивать между ячейками В27 и Н27, а...

Определить количество дней между двумя датами, введёнными пользователем
#include <iostream> using namespace std; void main() { setlocale(LC_ALL, "Rus"); int choice;

Подсчитать количество дней между двумя введёнными датами
В общем, нужен быстрый код, вычисляющий кол-во дней между двумя датами. Я видел много разных кодов реализующих эту задачу, но не могу в них...

15
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
25.11.2013, 21:04
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
1
2
3
4
5
6
Sub Davchikf()
Dim D1 As Date, D2 As Date
D1 = InputBox("Date 1", , "01.11.13")
D2 = InputBox("Date 2", , "01.12.13")
MsgBox (D2 - D1 - (8 - (D1 Mod 7)) Mod 7) \ 7 + 1, , "Всего воскресений:"
End Sub
7
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 15
06.12.2013, 13:34  [ТС]
А как получилась эта формула?
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
06.12.2013, 13:36
Davchikf, методом научного тыка.
А что, не принимают? Циклы нужны?
0
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 15
06.12.2013, 13:44  [ТС]
Нет просто спрашивают откуда эта формула взялась, расшифровать её) типо дата на 7 не делится, а почему тогда стоит
0
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 6
09.08.2017, 01:51
Mod действительно нельзя применять к операндам когда один - формата даты, другой - целочисленный.
Бешеная формула взорвала мозг.
Предположим компилятор пропустил такое деление и разрешил делить дату на число.
Допустим D1 будет принято за количество дней с начала года до даты D1 (если количество - от рождества Христова, то вообще какая-то бредовая цифра получится. Может с начала этого века - тоже несусветица)
1) Так вот, получается 304 дня делим по модулю на 7 и получаем остаток 3
2) из 8 вычитаем 3 = 5 (запомним)
3) D2 - D1 = 30 дней
4) 30 - 5(см выше) = 25
5) делим уже 25 по модулю на 7 = 4 (похоже на 4 воскресенья здесь! но...)
6) дальше зачем-то делим это ещё на 7 = 0,5714 и добавляем 1. Это что, 1,5714 воскресений получается???

А допустим что D1 = 30.10.2013, а D2 = 29.11.2019
тогда по пунктам:
1) 302 Mod 7 = 1
2) 8 - 1 = 7
3) 30 дней
4) 30 - 7 = 23 дня
5) 23 Mod 7 = 2 (тут даже это на количество воскресений не смахивает)
6) 2 / 7 = 0,2857 + 1 = 1,2857 воскресений... Это что вообще за результат такой???
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
09.08.2017, 05:26
Цитата Сообщение от rentgen_vvk Посмотреть сообщение
А допустим что D1 = 30.10.2013, а D2 = 29.11.2019
Цитата Сообщение от rentgen_vvk Посмотреть сообщение
6) 2 / 7 = 0,2857 + 1 = 1,2857 воскресений... Это что вообще за результат такой???
Проверим?


0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
09.08.2017, 07:11
Проверим еще раз циклом?
Миниатюры
Определить количество воскресений между двумя введенными датами  
0
09.08.2017, 07:18

Не по теме:

ТРЕТИЙ ЗАКОН ГРИРА
Компьютерная программа делает то, что вы ей приказали делать, а не то, что бы вы хотели, чтобы она делала :)

0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
09.08.2017, 13:52
Проверим?
Ага! отжали одной выходной!
нее август 8 месяц!!
Всё верно
Миниатюры
Определить количество воскресений между двумя введенными датами  
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
09.08.2017, 17:12
Цитата Сообщение от Alex77755 Посмотреть сообщение
нее август 8 месяц!!
Вот именно.
1
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 6
10.08.2017, 00:40
Оп оп оп, господа!
Маленькая поправочка: D2 не 29.11.2019, а 29.11.2013 (так подразумевалось, ведь я писал там в 3-м пункте: "30 дней"...)
Очепятка.
Всё равно.

аааааааяй-яй...
один пункт забыл написать!:
4) 5 делим по модулю на 7 = 0
а потом:
5) из 30 вычитаем полученный результат: 30 - 0 = 30
6) а теперь внимание! дальше делим 30 / 7 = 4,285 и добавляем 1 = 5,285
Всё правильно
Всё работает
0
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 6
10.08.2017, 00:49
...
Изображения
 
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
10.08.2017, 03:37
Цитата Сообщение от rentgen_vvk Посмотреть сообщение
6) а теперь внимание! дальше делим 30 / 7 = 4,285 и добавляем 1 = 5,285
Во-первых, там целочисленное деление, но не в этом дело.

Код выдает 4 воскресенья, все правильно он считает.

Что не так? Откуда Вы взяли 5 ?
0
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
11.08.2017, 00:22
Елки зеленые, целый час потратил чтобы понять эту формулу. Понял, все правильно, "научно обоснованно", без всяких фокусов.
Если у кого-то появится интерес к ней, подсказка, - 31.12.1899 - это воскресенье.
0
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 6
11.08.2017, 22:39
SoftIce, прошу прощения, я не уточнил что я использовал в расчёте.
Скрин окошка с пятёркой - это я взял изначальный пример кода, который написал Апострофф:
Цитата Сообщение от Апострофф Посмотреть сообщение
Sub Davchikf()
Dim D1 As Date, D2 As Date
D1 = InputBox("Date 1", , "01.11.13")
D2 = InputBox("Date 2", , "01.12.13")
MsgBox (D2 - D1 - (8 - (D1 Mod 7)) Mod 7) \ 7 + 1, , "Всего воскресений:"
End Sub
и запустил его в редакторе - таким образом сразу видно, как он работает. А в нём указаны даты с 01.11.2013 до 01.12.2013.

То, что я писал (10.08.2017 00:40), когда исправлял свои пункты (неправильно написанные в сообщении от 09.08.2017, 01:51):
Цитата Сообщение от rentgen_vvk Посмотреть сообщение
один пункт забыл написать!:
4) 5 делим по модулю на 7 = 0
а потом:
5) из 30 вычитаем
... и т.д.
- это относится к первой группе пунктов (в посте от 09.08.2017, 01:51), т.к. она изначально неправильная (а там использован период 01.11.2013-01.12.2013)

И насчёт
Цитата Сообщение от SoftIce Посмотреть сообщение
Сообщение от rentgen_vvk
6) а теперь внимание! дальше делим 30 / 7 = 4,285 и добавляем 1 = 5,285
Во-первых, там целочисленное деление, но не в этом дело.
Совершенно согласен.
Просто посчитал вручную.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2017, 22:39
Помогаю со студенческими работами здесь

Определить времена года между двумя введенными датами
Друзья, помогите с задачей. Условие звучит так: Задайте с клавиатуры две даты в виде день, месяц. Определите какие времена года будут...

Определить, сколько пятниц из диапазона между двумя введенными датами выпадает на 13 число
Определить, сколько пятниц из диапазона между двумя введенными датами выпадает на 13 число. ф-ии даты и времени 1. Date –...

Определить количество високосных годов между двумя введёнными
В общем, нужно написать программу (C++), которая будет определять кол-во високосных годов между двумя введёнными. Какие есть варианты...

Поиск пятницы, 13 числа между двумя введенными датами
Всем доброго времени суток! Есть проблема при поиске пятницы 13 между двумя введеными датами. Не понимаю, как должен проходить цикл for или...

Рассчитывание количества дней, часов, минут между двумя введенными датами
Здравствуйте уважаемые программисты!!! Не очень понимаю программирование. Очень нужна ваша квалифицированная помощь в решении задачи: нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru