powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами
64 сообщений из 64, показаны все 3 страниц
Работа с датами
    #37314195
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разработать программу для обработки вводимой пользователем даты.
Программа должна реализовывать следующие функции.
1. Показывать составные части введённой даты (число, месяц, год) по отдельности (функции DateSerial, Day, Month, Year, раздел справки Dates, подраздел Dates and Times Keyword Summary).
2. Дублировать вывод номера месяца в году его текстовым названи-ем (например: месяц апрель — выводится число 4 и название месяца — апрель).
3. Показывать название дня недели для введённой даты (функция WeekDay).
4. Показывать текущую дату и время.
5. Вычислять разницу между указанной и текущей датой в целых годах.
6. Определять день недели первого числа месяца указанной даты (DateSerial).
...
Рейтинг: 0 / 0
Работа с датами
    #37314201
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee, вводимой пользователем даты
куда???
...
Рейтинг: 0 / 0
Работа с датами
    #37314205
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюJeiDee, вводимой пользователем даты
куда???
а с чем связать удобнее будет?... в принципе без разницы
...
Рейтинг: 0 / 0
Работа с датами
    #37314207
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,
на ВБА пойдёт??
...
Рейтинг: 0 / 0
Работа с датами
    #37314212
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюJeiDee,
на ВБА пойдёт??
а в чем будет различие VB и VBA, это связка с Access идет? или как?
...
Рейтинг: 0 / 0
Работа с датами
    #37314217
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюJeiDee,
на ВБА пойдёт??
коротко да или нет???
Access вообще боюсь
...
Рейтинг: 0 / 0
Работа с датами
    #37314218
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюJeiDee,
на ВБА пойдёт??
Пойдет если на Microsoft Visual Basic 6 запустится :-)
...
Рейтинг: 0 / 0
Работа с датами
    #37314220
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,

нет не запустится
...
Рейтинг: 0 / 0
Работа с датами
    #37314241
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюJeiDee,

нет не запустится

А кто может помочь на VB 6
...
Рейтинг: 0 / 0
Работа с датами
    #37314331
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, я могу помочь... ближе к ночи.

ЦЭ не прав, конечно.
Всю обработку можно сделать хоть на VBA, хоть на VB, хоть на VBscript... просто для этого достаточно использовать общий функционал.
И затем отдать вам готовый код, одинаково работающий хоть в VS от 6 и выше, хоть в Office от 97 и выше...
...
Рейтинг: 0 / 0
Работа с датами
    #37314537
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDeeПомогите разработать программу для обработки вводимой пользователем даты.
Программа должна реализовывать следующие функции.
1. Показывать составные части введённой даты (число, месяц, год) по отдельности (функции DateSerial, Day, Month, Year, раздел справки Dates, подраздел Dates and Times Keyword Summary).
2. Дублировать вывод номера месяца в году его текстовым названи-ем (например: месяц апрель — выводится число 4 и название месяца — апрель).
3. Показывать название дня недели для введённой даты (функция WeekDay).
4. Показывать текущую дату и время.
5. Вычислять разницу между указанной и текущей датой в целых годах.
6. Определять день недели первого числа месяца указанной даты (DateSerial).

1) если ты вводишь даты вручную, не проще создать 3 текстбокса? например, text1.text для числа, 2 для месяца, 3 для года
2) if text2.text = "4" or text2.text = "04" then text7.text = "Апрель"

3) почитай лень разбираться http://msdn.microsoft.com/ru-ru/library/82yfs2zh(v=vs.90).aspx
4) text10.text = date. если нуно отдельно день месяц год: text10.text = day(date) text20.text = month(date) text30.text = year(date)
5) сначала обработка:
If Len(text20.text) < 2 Then text20.text = "0" & text20.text
If Len(text10.text) < 2 Then text10.text = "0" & text10.text
If Len(text1.text) < 2 Then text1.text = "0" & text1.text
If Len(text2.text) < 2 Then text2.text = "0" & text2.text
потом здесь будет результат в целых годах: Text6.Text = Val(Text30.Text & Text20.Text & Text10.Text) - Val(Text3.Text & Text2.Text & Text1.Text)
6) просто находишь день недели вот этой даты: text5.text = ":01" & ":" & Text2.Text & Text3.Text
удачи
...
Рейтинг: 0 / 0
Работа с датами
    #37314548
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

>1) если ты вводишь даты вручную, не проще создать 3 текстбокса? например, text1.text для числа, 2 для месяца, 3 для года

кому как мне одного хватает, пишешь 7 8 шарит, что это 7 августа 2011 г.
...
Рейтинг: 0 / 0
Работа с датами
    #37314549
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

да, просто афффтор сам просил JeiDeeПоказывать составные части введённой даты (число, месяц, год) по отдельности
...
Рейтинг: 0 / 0
Работа с датами
    #37314778
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelowZero,

Я не могу разобраться как вводить дату уже 3 часа маюсь. Вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Dim oldDate As Date
Dim oldWeekDay As Integer
Dim Den As String
Dim Mesyac As Integer
Dim God As Integer
Den = Text1.Text
Mesyac = Label4.Caption
God = Text3.Text

oldDate = # 6 / 19 / 2011 #
oldWeekDay = Weekday(oldDate)
Print oldDate
If oldWeekDay = "2" Then Label5.Caption = "Понедельник"
If oldWeekDay = "3" Then Label5.Caption = "Вторник"
If oldWeekDay = "4" Then Label5.Caption = "Среда"
If oldWeekDay = "5" Then Label5.Caption = "Четверг"
If oldWeekDay = "6" Then Label5.Caption = "Пятница"
If oldWeekDay = "7" Then Label5.Caption = "Суббота"
If oldWeekDay = "1" Then Label5.Caption = "Воскресенье"
так работает.
Как только меняю

oldDate = #Mesyac/Den/God#
пишется ошибка. Понять не могу почему.
oldDate = "Mesyac/Den/God" так тоже не хочет нормально работать, без кавычек так же
...
Рейтинг: 0 / 0
Работа с датами
    #37314782
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDeeКак только меняю
oldDate = #Mesyac/Den/God#
пишется ошибка. Понять не могу почему.Сказано ж тебе использовать DateSerial
...
Рейтинг: 0 / 0
Работа с датами
    #37314786
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProJeiDeeКак только меняю
oldDate = #Mesyac/Den/God#
пишется ошибка. Понять не могу почему.Сказано ж тебе использовать DateSerial
Спасибо) проблема 3ех часовая решена))
Буду дальше делать
...
Рейтинг: 0 / 0
Работа с датами
    #37314793
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee
Код: plaintext
1.
2.
3.
4.
5.
6.
If oldWeekDay = "2" Then Label5.Caption = "Понедельник"
If oldWeekDay = "3" Then Label5.Caption = "Вторник"
If oldWeekDay = "4" Then Label5.Caption = "Среда"
If oldWeekDay = "5" Then Label5.Caption = "Четверг"
If oldWeekDay = "6" Then Label5.Caption = "Пятница"
If oldWeekDay = "7" Then Label5.Caption = "Суббота"
If oldWeekDay = "1" Then Label5.Caption = "Воскресенье"

все проще
Код: plaintext
1.
?WeekdayName( 5 )
пятница
...
Рейтинг: 0 / 0
Работа с датами
    #37314850
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Shocker.Pro]JeiDee
Код: plaintext
1.
[src vba]?WeekdayName( 5 )
пятница

Чета не понял как это использовать...
Вот еще вопрос возник... как написать примерно в таком виде:
Код: plaintext
Label4.Caption = Day(Date) + " " + Month(Date)
тут какая то ошибка допущена но в C# нормально работало вроде
...
Рейтинг: 0 / 0
Работа с датами
    #37314856
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
Label4.Caption = "Сейчас:   " & Day(Date) & " Число"
Вот этот вопрос решил таким образом
...
Рейтинг: 0 / 0
Работа с датами
    #37314861
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelowZero5) сначала обработка:
If Len(text20.text) < 2 Then text20.text = "0" & text20.text
If Len(text10.text) < 2 Then text10.text = "0" & text10.text
If Len(text1.text) < 2 Then text1.text = "0" & text1.text
If Len(text2.text) < 2 Then text2.text = "0" & text2.text
потом здесь будет результат в целых годах: Text6.Text = Val(Text30.Text & Text20.Text & Text10.Text) - Val(Text3.Text & Text2.Text & Text1.Text)

А зачем такой код писать если можно легче так:
Код: plaintext
1.
2.
3.
Dim Razica As Integer
Raznica = Year(Date) - God
Print Raznica
...
Рейтинг: 0 / 0
Работа с датами
    #37314864
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JeiDeeА зачем такой код писать если можно легче так:
Код: plaintext
1.
2.
3.
Dim Razica As Integer
Raznica = Year(Date) - God
Print Raznica

А нет, так не правильно... там же целые года
...
Рейтинг: 0 / 0
Работа с датами
    #37314867
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot JeiDee]BelowZero5) сначала обработка:
If Len(text20.text) < 2 Then text20.text = "0" & text20.text
If Len(text10.text) < 2 Then text10.text = "0" & text10.text
If Len(text1.text) < 2 Then text1.text = "0" & text1.text
If Len(text2.text) < 2 Then text2.text = "0" & text2.text
потом здесь будет результат в целых годах: Text6.Text = Val(Text30.Text & Text20.Text & Text10.Text) - Val(Text3.Text & Text2.Text & Text1.Text)

Вот эта строка что обозначает... не понимаю.
Код: plaintext
If Len(text20.text) <  2  Then text20.text = "0" & text20.text
и для чего вот это
Код: plaintext
& text20.text
Классно было бы если объяснить что такое text20, text10, text1, text2. text30, text3
...
Рейтинг: 0 / 0
Работа с датами
    #37314883
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с датами
    #37314887
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,

If Len(text20.text) < 2 Then text20.text = "0" & text20.text
If если
Len(text20.text) длина содержимого текст бокса ...
< 2 догадайтесь
Then тогда
text20.text содержимое текст бокса
= догадайтесь
"0" & text20.text нуль и ...
то есть не 2, а 02
ОК??
...
Рейтинг: 0 / 0
Работа с датами
    #37314889
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написали бы в формате "00" и парень бы не мучился
...
Рейтинг: 0 / 0
Работа с датами
    #37314897
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Dim Den As Integer
Dim Mesyac As Integer
Dim God As Integer
Den = Text1.Text
Mesyac = Mes
God = Text3.Text
Dim Dennow As Integer
Dim Mesyacnow As Integer
Dim Godnow As Integer
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)

If Len(Den) <  2  Then Den = "0" & Den
If Len(Mesyac) <  2  Then Mesyac = "0" & Mesyac
If Len(God) <  2  Then God = "0" & God
If Len(Dennow) <  2  Then Dennow = "0" & Dennow
If Len(Mesyacnow) <  2  Then Mesyacnow = "0" & Mesyacnow
If Len(Godnow) <  2  Then Godnow = "0" & Godnow
Label8.Caption = Val(Godnow & Mesyacnow & Dennow) - Val(God & Mesyac & Den)

Не правильно считает. Пишет 2000 в ответе когда сегодня число 19.06.2011 а я задал 19.06.2009
...
Рейтинг: 0 / 0
Работа с датами
    #37314899
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDeeЧета не понял как это использовать...WeekdayName - очевидно это функция, которая возвращает название дня недели по его номеру. Соответственно, не требуется семь If-ов, чтобы написать название дня недели
...
Рейтинг: 0 / 0
Работа с датами
    #37314906
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee, а зачем так
Mesyac = Mes
2
что в Text1.Text и в Text3.Text
А вообще Date.Diff
...
Рейтинг: 0 / 0
Работа с датами
    #37314908
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это все какая-то бессмыслица
Код: plaintext
1.
Dim Mesyac As Integer
If Len(Mesyac) <  2  Then Mesyac = "0" & Mesyac
определяешь переменную как число, а потом пытаешься присвоить ей текстовое значение. Ничего не выйдет.

надо бы начать с изучения типов данных, хотя бы понять, чем отличается число от текста и как преобразовать одно в другое, а то тут такая каша
...
Рейтинг: 0 / 0
Работа с датами
    #37314909
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mesyac = "0" & Mesyac
то есть ноль без кавычек
...
Рейтинг: 0 / 0
Работа с датами
    #37314910
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim Mesyac As Integer Byte хватит!!
...
Рейтинг: 0 / 0
Работа с датами
    #37314929
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюJeiDee, а зачем так
Mesyac = Mes
2
что в Text1.Text и в Text3.Text
А вообще Date.Diff
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Потому что в поле Text2.txt могут вписать такие значения
например:
Dim Mes As String
Mes = ""
If Text2.Text = "1" Or Text2.Text = "01" Or Text2.Text = "Январь" Or Text2.Text = "Января" Then Mes = "01"
If Mes = "01" Then Text2.Text = "Январь"
Dim Mesyac As Byte
Mesyac = Mes
потому что месяц значение string
Я его сохранил в Byte.

У меня все равно выводится какая то фигня после ввода такого кода
Код: 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.
Dim Mes As String
Mes = ""
If Text2.Text = "1" Or Text2.Text = "01" Or Text2.Text = "Январь" Or Text2.Text = "Января" Then Mes = "01"
If Mes = "01" Then Text2.Text = "Январь"

'остальные расписывать не буду и так понятно что по анологии

Dim Den As Byte
Dim Mesyac As Byte
Dim God As Integer
Den = Text1.Text
Mesyac = Mes
God = Text3.Text

Dim Dennow As Byte
Dim Mesyacnow As Byte
Dim Godnow As Integer
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)

If Len(Den) <  2  Then Den =  0  & Den
If Len(Mesyac) <  2  Then Mesyac =  0  & Mesyac
If Len(God) <  2  Then God =  0  & God
If Len(Dennow) <  2  Then Dennow =  0  & Dennow
If Len(Mesyacnow) <  2  Then Mesyacnow =  0  & Mesyacnow
If Len(Godnow) <  2  Then Godnow =  0  & Godnow
Label8.Caption = Val(Godnow & Mesyacnow & Dennow) - Val(God & Mesyac & Den)
...
Рейтинг: 0 / 0
Работа с датами
    #37314932
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,

"Январь" Or "Января"
я еще можно придумать
яНвАря кто на что горазд
Я так понял, что день месяц и год в трёх тексбоксах??
если да то сединяете их в строку и
Функция CDate
CDate(Expression)
Функция CDate(Conversion to Date) преобразует выражение в тип Date

Параметры
Expression
Обязательный аргумент представляет собой любое выражение, представляющую календарную дату. Последовательность элементов даты(день, месяц, год) в аргументе Expression, распознаваемом как дата, определяются установками текущего компьютера
Пример
Код: plaintext
1.
2.
3.
4.
Dim A, retval
A="Июль 27,1966" ' выбираем дату
' Преобразуем результат в значение типа Date
retval=CDate(A)
Debug.Print retval

кучу кода съэкономите
...
Рейтинг: 0 / 0
Работа с датами
    #37314954
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
Dim A, retval
A = (Mesyac Den,God)
Print A
retval = CDate(A)
Print retval
Ошибку тут выводит
Код: plaintext
A = (Mesyac Den,God)
...
Рейтинг: 0 / 0
Работа с датами
    #37314963
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,
A = Mesyac & " " & Den & " " & God
...
Рейтинг: 0 / 0
Работа с датами
    #37314983
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim Dennow As Byte
Dim Mesyacnow As Byte
Dim Godnow As Integer
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)
Dim A, retval, Anow, retvalnow, Razn
A = (Mesyac & " " & Den & " " & God)
Anow = (Mesyacnow & " " & Dennow & " " & Godnow)
retval = CDate(A)
retvalnow = CDate(Anow)
Label8.Caption = retvalnow - retval
Вот так я сдела, т.е. данные выводятся в днях?
...
Рейтинг: 0 / 0
Работа с датами
    #37314993
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,

Функция DateDiff
DateDiff(Interval,Date1,Date2,[FirstDayOfWeek],[FirstWeekOfYear])
Функция DateDiff используется для вычисления разности двух дат

Возвращаемое значение
Возвращает значение типа Variant(Long), указывающее число временных интервалов между двумя датами
...
Рейтинг: 0 / 0
Работа с датами
    #37315001
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если надо с текущей сравнивать, тогда
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)
не нужно, сразу сравнивать с Date
хотя не помню туда может и время попадать
...
Рейтинг: 0 / 0
Работа с датами
    #37315008
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюJeiDee,

Функция DateDiff
DateDiff(Interval,Date1,Date2,[FirstDayOfWeek],[FirstWeekOfYear])
Функция DateDiff используется для вычисления разности двух дат

Возвращаемое значение
Возвращает значение типа Variant(Long), указывающее число временных интервалов между двумя датами
Код: plaintext
1.
2.
3.
4.
5.
Dim A, retval, Anow, retvalnow
A = (Mesyac & " " & Den & " " & God)
Anow = (Mesyacnow & " " & Dennow & " " & Godnow)
retval = CDate(A)
retvalnow = CDate(Anow)
Label8.Caption = DateDiff(Interval,retvalnow,retval,[FirstDayOfWeek],[FirstWeekOfYear]) 
...
Рейтинг: 0 / 0
Работа с датами
    #37315011
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так ошибка пишется
...
Рейтинг: 0 / 0
Работа с датами
    #37315017
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee, не надо привыкать

Dim A, retval, Anow, retvalnow

а надо
Dim A As .....
Dim retval As .....
Dim Anow As .....
Dim retvalnow As .....
переделывайте
...
Рейтинг: 0 / 0
Работа с датами
    #37315021
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interval то дни или месяцы или года
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Пример 
' Вычисляем сколько дней осталось до 21 века
Dim Today as Date' сегодняшний день
Dim Millenium As Date' 1 день 21 века
Dim retval' возвращаемое значение
Today=Date ' узнаем текущую системную дату
Millenium="01.01.01"
retval=DateDiff("d",Today,Millenium)
Form1.Caption = CStr(retval)  ' выводим в заголовке формы
...
Рейтинг: 0 / 0
Работа с датами
    #37315044
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорь замучался своими темами забыл про этот топик. для чего текстбоксы? я вроде всё написАл... думаю уже разобрались... но на всякий:
BelowZerotext1.text для числа, 2 для месяца, 3 для года сюда ты сам вводишь нужную тебе дату
text10.text(лучше конешь заменить лейблом, но тебе сойдёт) покажет тебе сегодняшнее число
text20.text покажет сегодняшний месяц... как некрасиво написал... покажет какой ща месяц
text30.text покажет какой ща год
text7.text покажет название месяца(например апрель)
text6.text цифра показывающая разницы в целых годах между сегодняшней датой и введённой
text5.text покажет первый день того месяца и года которые ты введёшь
...
Рейтинг: 0 / 0
Работа с датами
    #37315054
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюInterval то дни или месяцы или года
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Пример 
' Вычисляем сколько дней осталось до 21 века
Dim Today as Date' сегодняшний день
Dim Millenium As Date' 1 день 21 века
Dim retval' возвращаемое значение
Today=Date ' узнаем текущую системную дату
Millenium="01.01.01"
retval=DateDiff("d",Today,Millenium)
Form1.Caption = CStr(retval)  ' выводим в заголовке формы

Вот так вот сделал.... только он считает по дням... а мне надо число целых лет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim Dennow As Byte
Dim Mesyacnow As Byte
Dim Godnow As Integer
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)
Dim A As String 'Вот тут не знаю вроде String должен быть?
Dim Anow As String 'Вот тут не знаю вроде String должен быть?
Dim retvalnow As Date
Dim retval As Date
Dim Razn

A = (Mesyac & " " & Den & " " & God)
Anow = (Mesyacnow & " " & Dennow & " " & Godnow)
retval = CDate(A)
retvalnow = CDate(Anow)
Razn = DateDiff("y", retval, retvalnow)
Label8.Caption = Razn
...
Рейтинг: 0 / 0
Работа с датами
    #37315056
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин ну и намудрили вы за 2 страницы... чем не понра вариант с тексбоками? просто, весело, сердито. или и в этом топике создаёте новую ОС?)
...
Рейтинг: 0 / 0
Работа с датами
    #37315057
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
RaznGod = Razn / "365,24219"
Label8.Caption = RaznGod
Вот так сделал)))
надеюсь это правильно
...
Рейтинг: 0 / 0
Работа с датами
    #37315058
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
говорю же это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim Dennow As Byte
Dim Mesyacnow As Byte
Dim Godnow As Integer
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)
Anow = (Mesyacnow & " " & Dennow & " " & Godnow)
retvalnow = CDate(Anow)
в мусорку вместо него
retvalnow = Date тут ошибок не будет не беспокойтесь
а по поводку лет пробуйте не y а yyyy
...
Рейтинг: 0 / 0
Работа с датами
    #37315064
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim qwe as long
qwe = Val(god & mesyac & den) - Val(godnow & mesyacnow & dennow)

razn = val(qwe)\10000 возможны ошибки в синтаксисе но идея думаю понятна...
...
Рейтинг: 0 / 0
Работа с датами
    #37315067
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как всегда, если перед вором закрытая парадная дверь и настежь распахнутый чёрный вход, то он в лепёшку расшибётся на 2 страницах форума, но откроет переднюю) ну если не жалко сил..
...
Рейтинг: 0 / 0
Работа с датами
    #37315069
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и ещё... у вас правильный синтаксис A = Mesyac & " " & Den & " " & God ?
не нуно A = God & " " & Mesyac & " " & Den ?
...
Рейтинг: 0 / 0
Работа с датами
    #37315084
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDeeа мне надо число целых лет
Посмотрите здесь Расстояние между двумя датами
ЧислоЦелыхЛет=Val(FAge(Date1, Date2))
...
Рейтинг: 0 / 0
Работа с датами
    #37315111
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_worldJeiDeeа мне надо число целых лет
Посмотрите здесь Расстояние между двумя датами
ЧислоЦелыхЛет=Val(FAge(Date1, Date2))
Сделал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim Dennow As Byte
Dim Mesyacnow As Byte
Dim Godnow As Integer
Dennow = Day(Date)
Mesyacnow = Month(Date)
Godnow = Year(Date)

A = (God & " " & Mesyac & " " & Den)
Anow = (Godnow & " " & Mesyacnow & " " & Dennow)
retval = CDate(A)
retvalnow = CDate(Anow)
Razn = DateDiff("yyyy", retval, retvalnow)
Label8.Caption = "Число целых лет: " & Razn
так корректно работает
осталось с 6 пунктом разобраться
...
Рейтинг: 0 / 0
Работа с датами
    #37315144
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee
Код: plaintext
1.
2.
3.
..............................
Razn = DateDiff("yyyy", retval, retvalnow)
Label8.Caption = "Число целых лет: " & Razn
..............................
так корректно работает
Придется вас разочаровать
Код: plaintext
1.
?datediff("yyyy","31-12-2010","01-01-2011")
  1  
А должно быть 0...
...
Рейтинг: 0 / 0
Работа с датами
    #37315153
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_worldJeiDee
Код: plaintext
1.
2.
3.
..............................
Razn = DateDiff("yyyy", retval, retvalnow)
Label8.Caption = "Число целых лет: " & Razn
..............................
так корректно работает
Придется вас разочаровать
Код: plaintext
1.
?datediff("yyyy","31-12-2010","01-01-2011")
  1  
А должно быть 0...
Хм... надеюсь не спалят )))
вот так сделал
...
Рейтинг: 0 / 0
Работа с датами
    #37315154
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JeiDeemds_worldпропущено...

Придется вас разочаровать
Код: plaintext
1.
?datediff("yyyy","31-12-2010","01-01-2011")
  1  
А должно быть 0...
Хм... надеюсь не спалят )))
вот так сделал
Если сможете подправить будет здорово)
...
Рейтинг: 0 / 0
Работа с датами
    #37315335
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин как о стену горох... зачем возиться со спец функциями, дорабатывать их и надеяться, что будет работать, если узнать число целых лет можно двумя элементарными строчками, написанными выше? просто в две переменные(если не нра текстбоксы) запихать год & месяц & число а потом вычесть из одного другое??? например 20110620 - 20090520 = 20100. затем делишь на 10000 = 2. 2целых года... или в программировании не принято идти лёгкими путями?) 3 страницу уже изобретаете новую ОС
...
Рейтинг: 0 / 0
Работа с датами
    #37316513
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, да Вы посмотрите на его задание в вопросе, 6 пунктов, человек учится, старается, что его сбивать, ему много чего надо
> затем делишь на 10000
первый раз такое вижу, а почему затем делишь на 10000??
...
Рейтинг: 0 / 0
Работа с датами
    #37316564
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автору для затравки: http://www.cyberforum.ru/visual-basic/thread322867.html
...
Рейтинг: 0 / 0
Работа с датами
    #37316571
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюпервый раз такое вижу, а почему затем делишь на 10000??
Эндрю, а ВЫ читаете внимательно советы?
10000 - потому что значение до 9999 - это месяц и число.
...
Рейтинг: 0 / 0
Работа с датами
    #37318664
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я же отписал по всем пунктам ещё на 1 странице топика. про деление сразу забыл написать
...
Рейтинг: 0 / 0
Работа с датами
    #37324626
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чего это он сегодня затупил:
Дата = Format(Day(Date), "dd")
Дата = 24

____________________________
Оклиптик отдыхает
Dim Дата As Byte
Дата = Format(Day(Date), "dd")
Эффет тот же
...
Рейтинг: 0 / 0
Работа с датами
    #37324636
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бред номер один - форматирование обычного числа как даты
Бред номер два - присвоение строки числовой переменной, в результате чего форматирование бессмысленно вообще

когда же ты уже типы данных выучишь
...
Рейтинг: 0 / 0
Работа с датами
    #37324672
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, уже и выучил:
Код: plaintext
1.
2.
Dim День_даты_00 As String
День_даты_00 = Format(Day(Date), "00")
Взлетаем
...
Рейтинг: 0 / 0
Работа с датами
    #37324977
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

В принципе, достаточно изучить формат хранения даты в основных БД. Можно только "в популярных". Млжно вообще во всех форматах. ИБО - как-то они хранятся, и есть принцип пребразования...

Ф вот, скажем, никогда не заморачивался с преобразованием дат с того момента, пока не посмотрел, как они там в HEX-формате хранятся. И усё - зачем придумывать что-то, вместо того, чтобы прочесть...
...
Рейтинг: 0 / 0
64 сообщений из 64, показаны все 3 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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