powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите пожалуйста составить программу
24 сообщений из 24, страница 1 из 1
помогите пожалуйста составить программу
    #36579366
aksy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вводим месяцы, выводим кол-во дней в месяце
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579370
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579371
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579423
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aksy, вот
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function CountDayMonth(Byref YYYY as Integer, Byref MM as Integer) As Integer
CountDayMonth =  0 
Dim i as Integer
For i =  1  To  31 
     CountDayMonth = CountDayMonth + IIf(IsDate(CStr(i) & "." & CStr(MM) & "." & CStr(YYYY),  1 ,  0 ))
Next
End Function
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579424
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправил
Код: plaintext
1.
2.
3.
4.
5.
6.
Function CountDayMonth(ByRef YYYY As Integer, ByRef MM As Integer) As Integer
CountDayMonth =  0 
Dim i As Integer
For i =  1  To  31 
     CountDayMonth = CountDayMonth + IIf(IsDate(CStr(i) & "." & CStr(MM) & "." & CStr(YYYY)),  1 ,  0 )
Next
End Function
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579445
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.,

Если твой код был серьезно, то больше не нужно такого кода, если в шутку, то не вижу смайлика
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579446
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.,

Это такое изощренное издевательство?
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579447
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

+100500
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579454
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Хотя... не далее чем сегодня видел еврейскую книгу (вполне серьезную), год издания - 5 тыщ какой-то там. Типа у них календарь свой... Может и у Михаила может быть пять дней в месяце
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579457
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Ну и что? Как это изменит поведение типа данных дата к отниманию? Если не поддерживаемый календарь, то функцию проверки IsData нужно писать свою
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579459
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Я где-то краем уха слышал, что работа с типом Date идет через функции API. То бишь, если винда, скажем, буддистская, то и работа с датой там поменяется....

А может наврали....
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579463
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но ведь работает!
Только тогда уж можно подсократить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function CountDayMonth(ByRef YYYY As Integer, ByRef MM As Integer) As Integer
CountDayMonth =  27 
Dim i As Integer
For i =  28  To  31 
     CountDayMonth = CountDayMonth + IIf(IsDate(CStr(i) & "." & CStr(MM) & "." & CStr(YYYY)),  1 ,  0 )
Next
End Function
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579465
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Поэтому я и сказал, что с датой ничего не поменяется.
А если нужно считать количество дней в месяце по календарю майя(например), который не поддерживается системой, то для этого нужно будет сначала всю эту поддержку написать самому, руками


Но здесь вроде простой случай
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579471
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

Блин! Ещё один!
Конечно работает! у меня нет претензий к работоспособности кода, у меня претензии к алгоритму решения.

Ну разве сложно написать в намного короче и в РАЗЫ читабельней:
Код: plaintext
1.
2.
Function CountDayMonth(ByVal YYYY As Integer, ByVal MM As Integer) As Integer
CountDayMonth = Day(DateSerial(YYYY, MM +  1 ,  1 ) -  1 )
End Function

И если уж расставляете квалификаторы передачи параметров, то ставьте их правильно. Если переменная в фукции не изменяется, то нечего ей делать в параметре по ссылке. только значение.

Вот аналог
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579473
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь, а ты не лоханулся ли с декабрем?
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579487
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Конечно лоханулся!
Код: plaintext
1.
2.
3.
4.
Function CountDayMonth(ByVal YYYY As Integer, ByVal MM As Integer) As Integer
CountDayMonth = - 1 
On Error Resume Next
CountDayMonth = Day(DateSerial(YYYY, IIf(MM =  12 ,  1 , MM +  1 ),  1 ) -  1 )
End Function

Хотя обработку ошибок можно видоизменить, в зависимости от корпоративной политики партии написания кода
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579494
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не. Чем IIf тут, ну мне ближе

Код: plaintext
Day(DateAdd("d", - 1 , DateAdd("m",  1 , DateSerial(YYYY, MM,  1 ))))
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя...
Твой вариант быстрее в 4,5 раза


Блин, благодаря Михаилу родился еще один говнотопик под названием "последний день помпеимесяца". На SQL-евской ветке от них уже плачут :-(((
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579540
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
CountDayMonth = Day(DateSerial(YYYY, , MM +  1 ,  0 ))
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579542
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С зяпятыми обсчитался
Код: plaintext
CountDayMonth = Day(DateSerial(YYYY, MM +  1 ,  0 ))
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579548
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world,

Неожиданно!!!

Код: plaintext
1.
?Day(DateSerial( 2010 ,  15 ,  0 ))
  28  

Бум знать.
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579589
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579593
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Чаще, надо читать документацию на элементарные функции.
Глядишь и в функции Mid$ найдется вычисление тангенса
...
Рейтинг: 0 / 0
помогите пожалуйста составить программу
    #36579763
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Особенно вместо сна
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите пожалуйста составить программу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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