powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами
25 сообщений из 64, страница 2 из 3
Работа с датами
    #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
25 сообщений из 64, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с датами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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