Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату / 25 сообщений из 40, страница 1 из 2
23.09.2010, 11:13
    #36861797
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату, Допустим вводим мы год и вводим дату, можно также задать квартал, только что бы он вывел 2 даты, начало и конец квартала
...
Рейтинг: 0 / 0
23.09.2010, 11:20
    #36861822
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
function xxx(y as integer,kva as integer,nach as boolean)as date
select case kva
case 1:if nach then xxx=dateserial(y,1,1)else xxx=dateserial(y,3,31)
case 2:if nach then xxx=dateserial(y,4,1)else xxx=dateserial(y,6,30)
case 3:if nach then xxx=dateserial(y,7,1)else xxx=dateserial(y,9,30)
case 4:if nach then xxx=dateserial(y,10,1)else xxx=dateserial(y,12,31)
end select
end function
...
Рейтинг: 0 / 0
23.09.2010, 11:23
    #36861833
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Владимир Саныч,
спасибо добрый самаритянин, буду проверять
...
Рейтинг: 0 / 0
23.09.2010, 11:29
    #36861856
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Владимир Саныч,

Если честно, то с вами я лучше понимаю чем мне кто-то объясняет. были бы вы моим учителем.!
...
Рейтинг: 0 / 0
23.09.2010, 11:31
    #36861863
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
paradisediamondЕсли честно, то с вами я лучше понимаю чем мне кто-то объясняет. были бы вы моим учителем.!
То есть Вы понимаете, когда Вам НЕ объясняют, а делают за Вас. Прискорбно. Постараюсь впредь так НЕ делать.
...
Рейтинг: 0 / 0
23.09.2010, 11:34
    #36861876
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Владимир Саныч,
нет я в акцессе полный ноль, но после того как я вижу функцию, я начинаю читать что означает то или иное в хелпе, вот я не знала про DateSerial. Сейчас читаю и изучаю. И так постоянно. Разве это плохо?
...
Рейтинг: 0 / 0
23.09.2010, 11:35
    #36861881
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Если Вы действительно так делаете, то хорошо.
...
Рейтинг: 0 / 0
23.09.2010, 11:36
    #36861886
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Владимир Саныч,
потом свой вариант выглядит так:

' сделать даты конца и начала квартала
god = Me.ПолеСоСписком3
kv = CInt(Left(Me.ПолеСоСписком5, 1))

i = ((kv - 1) * 3) + 1

' Первый день текущего месяца
m_FirstDayKv = DateSerial(god, i, 1) ' 1 4 7 10

' Последний день текущего месяца
m_LastDayKv = DateSerial(god, i + 3, 0) ' 4 7 10 13
...
Рейтинг: 0 / 0
23.09.2010, 11:39
    #36861901
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Владимир Саныч,
Ваш вариант проще, а в моем пришлось вымудриться. Нужно было узнать начальную и конечную дату квартала
...
Рейтинг: 0 / 0
23.09.2010, 11:50
    #36861944
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
paradisediamondВладимир Саныч,
потом свой вариант выглядит так:
Не проверял, но мне нравится.
...
Рейтинг: 0 / 0
23.09.2010, 15:02
    #36862586
George-III
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
я написал 2 ф-ии:
Код: plaintext
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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
'Функция возвращающая первую дату указанного квартал за год
Public Function fncKvStartD(ByVal bteKv As Byte, Optional ByVal varYear As Variant) As String
On Error GoTo Err_fncKvStartD
    Dim intYear As Integer
    If IsMissing(varYear) Then
        intYear = Year(Date)
    Else
        intYear = CInt(varYear)
    End If
    Select Case bteKv
        Case  1 
            fncKvStartD = "01/01/" & Format(intYear, "0000")
        Case  2 
            fncKvStartD = "04/01/" & Format(intYear, "0000")
        Case  3 
            fncKvStartD = "07/01/" & Format(intYear, "0000")
        Case  4 
            fncKvStartD = "10/01/" & Format(intYear, "0000")
        Case Else
            '213 - Недопустимый номер квартала!
            fncKvStartD = "Недопустимый номер квартала!"
    End Select
Exit_fncKvStartD:
    Exit Function
Err_fncKvStartD:
    fncKvStartD = Err.Description
    Resume Exit_fncKvStartD
End Function

'Функция возвращающая последнюю дату указанного квартал за год
Public Function fncKvEndD(ByVal bteKv As Byte, Optional ByVal varYear As Variant) As String
On Error GoTo Err_fncKvEndD
    Dim intYear As Integer
    If IsMissing(varYear) Then
        intYear = Year(Date)
    Else
        intYear = CInt(varYear)
    End If
    Select Case bteKv
        Case  1 
            fncKvEndD = "03/" & Day(DateSerial(CInt(Format(intYear, "0000")),  4 ,  0 )) & "/" & Format(intYear, "0000")
        Case  2 
            fncKvEndD = "06/" & Day(DateSerial(CInt(Format(intYear, "0000")),  7 ,  0 )) & "/" & Format(intYear, "0000")
        Case  3 
            fncKvEndD = "09/" & Day(DateSerial(CInt(Format(intYear, "0000")),  10 ,  0 )) & "/" & Format(intYear, "0000")
        Case  4 
            fncKvEndD = "12/" & Day(DateSerial(CInt(Format(intYear +  1 , "0000")),  1 ,  0 )) & "/" & Format(intYear, "0000")
        Case Else
            '213 - Недопустимый номер квартала!
            fncKvEndD = "213 - Недопустимый номер квартала!"
    End Select
Exit_fncKvEndD:
    Exit Function
Err_fncKvEndD:
    fncKvEndD = Err.Description
    Resume Exit_fncKvEndD
End Function
...
Рейтинг: 0 / 0
23.09.2010, 15:07
    #36862601
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
...шо-та как-та всё сложно ))
Код: plaintext
1.
2.
3.
quartal =  2  : ?"start = " & DateAdd("q", quartal -  1 , # 1 / 1 / 2010 #) : ?"finish = " & DateAdd("q", quartal, # 1 / 1 / 2010 #) -  1 
start =  01 . 04 . 2010 
finish =  30 . 06 . 2010 
...
Рейтинг: 0 / 0
23.09.2010, 16:10
    #36862777
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
ё...шо-та как-та всё сложно ))
Код: plaintext
1.
2.
3.
quartal =  2  : ?"start = " & DateAdd("q", quartal -  1 , # 1 / 1 / 2010 #) : ?"finish = " & DateAdd("q", quartal, # 1 / 1 / 2010 #) -  1 
start =  01 . 04 . 2010 
finish =  30 . 06 . 2010 
:
Что за фигня????
...
Рейтинг: 0 / 0
23.09.2010, 16:19
    #36862801
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
paradisediamondё...шо-та как-та всё сложно ))
Код: plaintext
1.
2.
3.
quartal =  2  : ?"start = " & DateAdd("q", quartal -  1 , # 1 / 1 / 2010 #) : ?"finish = " & DateAdd("q", quartal, # 1 / 1 / 2010 #) -  1 
start =  01 . 04 . 2010 
finish =  30 . 06 . 2010 
:
Что за фигня????

Код: plaintext
1.
2.
3.
4.
5.
6.
function xxx(y as integer,kva as integer,nach as boolean)as date
if  nach then
  xxx = DateAdd("q", kva -  1 , dateserial(y, 1 , 1 )) 
else
  xxx = DateAdd("q", kva, dateserial(y, 1 , 1 )) -  1 
end if
end function

...понятно, почему Саныч вам отвечает сразу кодом...
по другому - вам недоходит ниразу....
...
Рейтинг: 0 / 0
23.09.2010, 16:24
    #36862818
paradisediamond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
ёparadisediamondё...шо-та как-та всё сложно ))
Код: plaintext
1.
2.
3.
quartal =  2  : ?"start = " & DateAdd("q", quartal -  1 , # 1 / 1 / 2010 #) : ?"finish = " & DateAdd("q", quartal, # 1 / 1 / 2010 #) -  1 
start =  01 . 04 . 2010 
finish =  30 . 06 . 2010 
:
Что за фигня????

Код: plaintext
1.
2.
3.
4.
5.
6.
function xxx(y as integer,kva as integer,nach as boolean)as date
if  nach then
  xxx = DateAdd("q", kva -  1 , dateserial(y, 1 , 1 )) 
else
  xxx = DateAdd("q", kva, dateserial(y, 1 , 1 )) -  1 
end if
end function

...понятно, почему Саныч вам отвечает сразу кодом...
по другому - вам недоходит ниразу....


А про год речи и нет, год может быть и от рождества Христова, а у вас полугодие
...
Рейтинг: 0 / 0
23.09.2010, 16:29
    #36862832
GUESТ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
даты начала и конца кварталов всегда одинаковые

нафига тут какая-то особая функция этих дат?
...
Рейтинг: 0 / 0
23.09.2010, 16:30
    #36862834
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
paradisediamond...
А про год речи и нет, год может быть и от рождества Христова, а у вас полугодие
ааааа!!!, мляяяя!!!

о чём вы, автор ???
...
Рейтинг: 0 / 0
23.09.2010, 16:39
    #36862856
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
ё...
о чём вы, автор ???
...для детей природы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Function xxx(y As Integer, kva As Integer, nach As Boolean) As Date
If nach Then
  xxx = DateAdd("q", kva -  1 , DateSerial(y,  1 ,  1 ))
Else
  xxx = DateAdd("q", kva, DateSerial(y,  1 ,  1 )) -  1 
End If
End Function

Sub АвторЖжжет()
  Dim i As Integer
  For i =  1  To  4 
    Debug.Print "Квартал: " & i & "   " & _
                "Начало: " & xxx( 2010 , i, True) & "   " & _
                "Окончание: " & xxx( 2010 , i, False)

  Next i
End Sub
Код: plaintext
1.
2.
3.
4.
АвторЖжжет
Квартал:  1    Начало:  01 . 01 . 2010    Окончание:  31 . 03 . 2010 
Квартал:  2    Начало:  01 . 04 . 2010    Окончание:  30 . 06 . 2010 
Квартал:  3    Начало:  01 . 07 . 2010    Окончание:  30 . 09 . 2010 
Квартал:  4    Начало:  01 . 10 . 2010    Окончание:  31 . 12 . 2010 
...
Рейтинг: 0 / 0
23.09.2010, 18:25
    #36863174
s.w.a.n.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
ёparadisediamond...
А про год речи и нет, год может быть и от рождества Христова, а у вас полугодие
ааааа!!!, мляяяя!!!

о чём вы, автор ???

)))+5
...
Рейтинг: 0 / 0
23.09.2010, 18:50
    #36863222
proposed amendment
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
select case define_dates (q as integer)

case 1
Начало= 01.01.2010 Окончание= 31.03.2010
case 2
Начало= 01.04.2010 Окончание= 30.06.2010
case 3
Начало= 01.07.2010 Окончание= 30.09.2010
case 4
Начало= 01.10.2010 Окончание= 31.12.2010
case else

end select

или это не спортивно?
...
Рейтинг: 0 / 0
23.09.2010, 20:38
    #36863405
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
proposed amendment...
или это не спортивно?
да, нет - нормально,
Саныч вообщем с этого и начал

мой ответ был в основном на пример от George-III
с вот этими всякими
Код: plaintext
1.
...Day(DateSerial(CInt(Format(intYear +  1 , "0000")),  1 ,  0 )) ...
...ну, а тут ещё ТС подтянулся

ну и про спорт
Код: plaintext
1.
2.
Function xxx(y As Integer, kva As Integer, nach As Boolean) As Date
  xxx = DateAdd("q", kva + nach, DateSerial(y,  1 ,  1 )) + (not nach)
End Function
...
Рейтинг: 0 / 0
23.09.2010, 20:54
    #36863422
garri2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
ё,
+питсот,
ща люди запугают ТС-а окончательно
...
Рейтинг: 0 / 0
23.09.2010, 20:56
    #36863424
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
ё Саныч вообщем с этого и начал
Собственно, я с этого начал только для того, чтобы показать ТС, что задачка-то элементарная и спрашивать такие вещи в форуме нехорошо. Вот если бы был задан вопрос, как это записать одной строчкой, тогда да.
...
Рейтинг: 0 / 0
23.09.2010, 21:11
    #36863441
Спортсмен
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
И мои копейки
Код: plaintext
1.
2.
Function xxx(y As Integer, kva As Integer, nach As Boolean) As Date
  xxx = DateSerial(y,  3 *(kva+nach)+ 1 , -nach)
End Function
...
Рейтинг: 0 / 0
23.09.2010, 21:30
    #36863455
nord-woolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату
Усложним до:
Код: plaintext
1.
GetBeginEndQuarter = Array(DateSerial(Y, Array(,  1 ,  4 ,  7 ,  10 )(Q),  1 ), DateSerial(Y, Q *  3 , Array(,  31 ,  30 ,  30 ,  31 )(Q)))
Код: plaintext
?GetBeginEndQuarter( 2010 , 4 )( 0 ),GetBeginEndQuarter( 2010 , 4 )( 1 )
:)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите написать функцию которая выдает по номеру квартала его начальную и конечную дату / 25 сообщений из 40, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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