Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите пожалуйста составить программу / 24 сообщений из 24, страница 1 из 1
14.04.2010, 19:56
    #36579366
aksy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
вводим месяцы, выводим кол-во дней в месяце
...
Рейтинг: 0 / 0
14.04.2010, 20:03
    #36579370
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
...
Рейтинг: 0 / 0
14.04.2010, 20:06
    #36579371
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
...
Рейтинг: 0 / 0
14.04.2010, 21:09
    #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
14.04.2010, 21:10
    #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
14.04.2010, 21:43
    #36579445
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
.Михаил.,

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

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

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

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

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

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

А может наврали....
...
Рейтинг: 0 / 0
14.04.2010, 21:59
    #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
14.04.2010, 22:00
    #36579465
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
Shocker.Pro,

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


Но здесь вроде простой случай
...
Рейтинг: 0 / 0
14.04.2010, 22:08
    #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
14.04.2010, 22:14
    #36579473
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
Игорь, а ты не лоханулся ли с декабрем?
...
Рейтинг: 0 / 0
14.04.2010, 22:29
    #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
14.04.2010, 22:37
    #36579494
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите пожалуйста составить программу
не. Чем IIf тут, ну мне ближе

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


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

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

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

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

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


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