С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96

Дата прописью

26.02.2020, 13:11. Показов 4702. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Преобразую число в текст так:

' Дата прописью
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub ЧислоЦифры_Change()
Dim c As Currency
    On Error GoTo 999
    c = ЧислоЦифры.Text
    Me.ЧислоБуквы = funRusMoney(c, False) 'Обычная пропись
    Exit Sub
999:
    Me.ЧислоБуквы = "Введите правильно дату!"
End Sub
Нужно чтобы дату типа:
25.02.2020
преобразовывал в дату прописью:
Двадцать пятое февраля две тысячи двадцатого

помогите ПЛИССС
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2020, 13:11
Ответы с готовыми решениями:

Access запрос Есть два поля : дата начало и дата окончания
Есть два поля : дата начало и дата окончания. Если дата находиться в диапазоне то нужно выводить в поле "важность" запись...

дата рождения = дата посещению
Добрый день! Пытаюсь сделать вот такой запрос выбрать и вывести только тех у кого совпадают даты пример ФИО дата...

Как разделить колонку с форматом Дата/время на две - Дата и время
Здравствуйте. Подскажите пожалуйста, как разделить колонку с форматом Дата/время на две - Дата и время Задача выглядит следующим...

28
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
26.02.2020, 13:41
ibrahimveg,

Самый примитивный способ - сделать таблички соответствий для дней и месяцев.
Всего 31 запись в первой табличке и 12 записей во второй табличке.
А уж с годами дальше разберетесь.
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,266
Записей в блоге: 5
26.02.2020, 14:24
в русском языке разные числа в одних и тех же разрядах звучат по-разному
2000 - двухтысячного
2020 - две тысячи двадцатого
2100 - две тысячи сотого
2101 - две тысячи сто первого

прикольная задачка получается... похлеще рублей с копейками
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,932
Записей в блоге: 4
26.02.2020, 14:31
Цитата Сообщение от Capi Посмотреть сообщение
сделать таблички соответствий для дней и месяцев
я бы не стала возится с табличками - сделала бы функцией,т.к. мало ли где потребуется
если же все же табличкой, то учла бы разные падежи и языки
дата исполнения первое марта
выполнит до первого марта

кстати, весьма интересно гугл переводит на немецкий(цифрами вместо текста)
------------rus-----------
дата выполнения работ двадцать первое марта две тысячи двадцатого года
работы необходимо выполнить до двадцать первого марта две тысячи двадцатого года
-------------eng----------
the date of completion of work is twenty-first of March two thousand and twenty years
work must be completed before the twenty-first of March two thousand and twenty years
-------------Deutsch----------
Das Datum der Fertigstellung der Arbeiten ist der 21. März, zweitausendundzwanzig Jahre
Die Arbeiten müssen vor dem 21. März 2000 abgeschlossen sein
-------------ukr----------
дата виконання робіт двадцять перше березня дві тисячі двадцятого року
роботи необхідно виконати до двадцять першого березня дві тисячі двадцятого року
0
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
26.02.2020, 14:39  [ТС]
а какой функцией?
0
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,266
Записей в блоге: 5
26.02.2020, 14:50
Вывести текущую дату и день недели словами - тут было обсуждение такого
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,932
Записей в блоге: 4
26.02.2020, 14:59
amd48,
только это далеко не обсуждение , тема без ответов
вывести текущую дату и день недели словами
например мы вводим 15.05.1990
и программа выдают сообшение это же дата не цифрами а словами

Добавлено через 1 час 19 минут
некто незнает как это сделать ?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
26.02.2020, 15:03
Нашел в загашниках (из Эксела) - не мое, за стиль не отвечаю, но вроде работало.
Visual Basic
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
'Преобразование даты из числового формата в текст с 2001 по 2099 год
Public Function ДатаПрописью(md As Date) As String
If (md < 36892) Or (md > 73050) Then
ДатаПрописью = "Преобразуемая дата должна быть с 2001 по 2099 год!"
Else
Dim den As Byte, dg(1 To 4) As Byte, mes As Byte, god As Byte, _
mespr As String, dmgpr As String
den = Day(md)
mes = Month(md)
god = (Year(md) Mod 100)
dg(1) = god Mod 10
dg(2) = Fix(god / 10)
dg(3) = den Mod 10
dg(4) = Fix(den / 10)
Dim dgpr(1 To 4) As String, i1 As Byte
For i1 = 1 To 4
If (i1 = 1) Or (i1 = 3) Then
If dg(i1 + 1) = 1 Then
dgpr(i1) = Choose(dg(i1) + 1, "десятого ", "одиннадцатого ", "двенадцатого ", _
"тринадцатого ", "четырнадцатого ", "пятнадцатого ", "шестнадцатого ", _
"семнадцатого ", "восемнадцатого ", "девятнадцатого ")
Else
dgpr(i1) = Choose(dg(i1) + 1, "", "первого ", "второго ", _
"третьего ", "четвертого ", "пятого ", "шестого ", _
"седьмого ", "восьмого ", "девятого ")
End If
ElseIf (i1 = 2) Or (i1 = 4) Then
If dg(i1 - 1) = 0 Then
dgpr(i1) = Choose(dg(i1) + 1, "", "", "двадцатого ", _
"тридцатого ", "сорокового ", "пятидесятого ", "шестидесятого ", _
"семидесятого ", "восьмидесятого ", "девяностого ")
Else
dgpr(i1) = Choose(dg(i1) + 1, "", "", "двадцать ", _
"тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", _
"семьдесят ", "восемьдесят ", "девяносто ")
End If
End If
Next
mespr = Choose(mes, "января ", "февраля ", "марта ", "апреля ", "мая ", _
"июня ", "июля ", "августа ", "сентября ", "октября ", "ноября ", "декабря ")
dmgpr = dgpr(4) & dgpr(3) & mespr & "две тысячи " & dgpr(2) & dgpr(1) & "года"
ДатаПрописью = Replace(dmgpr, Left(dmgpr, 1), UCase(Left(dmgpr, 1)), 1, 1)
End If
End Function
1
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,932
Записей в блоге: 4
26.02.2020, 15:24
решила проверить на пакость
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub mm200226_date()
Dim dt As Date
dt = CDate("03/04/2001"): ДатаПрописью (dt)
dt = CDate("04/03/2011"): ДатаПрописью (dt)
dt = CDate("13/03/2033"): ДатаПрописью (dt)
dt = CDate("03/13/2033"): ДатаПрописью (dt)
dt = CDate("02/29/2032"): ДатаПрописью (dt)
dt = CDate("29/02/2032"): ДатаПрописью (dt)
dt = CDate("29/02/2000"): ДатаПрописью (dt)
'''
dt = CDate("29/02/2031"): ДатаПрописью (dt)  
''03.04.2001    Третьего апреля две тысячи первого года
''04.03.2011    Четвертого марта две тысячи одиннадцатого года
''13.03.2033    Тринадцатого марта две тысячи тридцать третьего года
''13.03.2033    Тринадцатого марта две тысячи тридцать третьего года
''29.02.2032    Двадцать девятого февраля две тысячи тридцать второго года
''29.02.2032    Двадцать девятого февраля две тысячи тридцать второго года
''29.02.2000    Преобразуемая дата должна быть с 2001 по 2099 год!
29/02/2031   ----error cdate
End Sub
1
Эксперт MS Access
 Аватар для Eugene-LS
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,432
26.02.2020, 17:04
Цитата Сообщение от shanemac51 Посмотреть сообщение
решила проверить на пакость
Задачка давно решена и не единожды.
Лежит на просторах интернета и сохнет по ТС.
Там вариации от Суммы прописью ...
- если кого на яндекс забанили - я не виноват .
... или хочется поизобретать "свой велосипед" - так вперёд!
Успехов!
0
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
26.02.2020, 20:53  [ТС]
я тему не запостил не посмотрев на просторах инета . может поиск не верно делал. чем писать 6 строк текста если вариант было бы этот с яндекс просторов правильный поисковый запрос если бы ты скинул было бы ЧЕТКО

по сути моя задача сводится только к 2020 году.

Главное чтобы к примеру:
25.02 переводилось в "двадцать пятое февраля".
(важно число и месяц)
а 2020 я в шаблоне ворд просто оставил бы словами, вставив ссылку до поля года.
0
Эксперт MS Access
 Аватар для Eugene-LS
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,432
26.02.2020, 21:22
Цитата Сообщение от ibrahimveg Посмотреть сообщение
25.02 переводилось в "двадцать пятое февраля".
Например выражение:
Visual Basic
1
?Format(Now,"\С\е\г\о\д\н\я\: d mmmm yyyy\, \(ddd\.\) \В\р\е\м\я\: hh:mm:ss")
Вернёт:
Visual Basic
1
Сегодня: 26 февраля 2020, (Ср.) Время: 21:02:59
Поиграв с форматированием (и аргументом вместо Now ) - легко добиться необходимого.
...
Если у вас так и записано (25.02 текстом )- то предварительно через DateSerial() ... с разложением цифер по формату.

Добавлено через 11 минут
ibrahimveg, например:
Visual Basic
1
2
3
4
5
6
Sub test01()
Dim s$
    s = "25.02"
    s = Format(DateSerial(Year(Now), CInt(Mid(s, 4)), CInt(Mid(s, 1, 2))), "d mmmm yyyy")
    Debug.Print s
End Sub
Напишет:
Visual Basic
1
25 февраля 2020
1
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
27.02.2020, 00:23  [ТС]
наверно я даже неправильно объясняю.
если вариант посмотрите в форме и там пропишите как надо.
Вложения
Тип файла: zip test.zip (42.6 Кб, 4 просмотров)
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2020, 00:24
ibrahimveg,

Что, все никак?
И функцию выложили и простейшие способы предлагали.
И никак?
А чего функцию ltv_1953 из #8 не взяли? Там только окончания подправить, и все.

Ну, не хотите, как хотите.
Держите табличку.
Затратила ровно 9 минут от начала создания таблички до получения результата.
Здесь пишу в два раза дольше.

Таблица DateInWords
NDM
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тридцать первое 
Использование:
Visual Basic
1
2
? DLookUp("D", "DateInWords", "N=" & Day(Date())) & " " & DLookUp("M", "DateInWords", "N=" & Month(Date()))
двадцать седьмое февраля
Год самостоятельно пририсуйте. Вам ведь только 2020 нужен.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2020, 00:29
Цитата Сообщение от shanemac51 Посмотреть сообщение
только это далеко не обсуждение , тема без ответов
Как и куда Вы смотрите, интересно знать?
Тема на двух страницах, 21 сообщение.
0
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
27.02.2020, 00:34  [ТС]
я просто вообще не шарю в коде. делаю по аналогии

тут более подробно попытался привести пример
Вложения
Тип файла: zip test.zip (41.8 Кб, 5 просмотров)
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2020, 00:38
Что тут шарить?

Копируйте себе таблицу и приведенную строчку кода.

Базу смотреть не буду.
0
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
27.02.2020, 00:50  [ТС]
тут вообще не мой случай
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
27.02.2020, 01:17
I see...
0
2 / 1 / 2
Регистрация: 26.08.2015
Сообщений: 96
27.02.2020, 01:22  [ТС]
я тут редкий гость - только когда совсем припрет.
мог бы и посмотреть таблицу и помочь нубу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2020, 01:22
Помогаю со студенческими работами здесь

Сумма прописью
Кто сталкивался с такой проблемой? Есть функция СуммаПрописью, которая дана в Акцессе в базах данных примеров (например в БД 'Борей')....

Стоимость прописью
Здравствуйте многоуважаемые! Подскажите пожалуйста, как в приведенном коде убрать запятую и написать копейки цифрами. Этот код взял из...

Сумма прописью
Извините, за избитый вопрос, как в отчете вывести сумму прописью? Спасибо

Числа прописью
Добрый день! Как можно сделать в аксесс при вормировании запроса число прописью? (да и вообще как реализовать в БД данную возможнсть)

Месяц прописью
Нужно создать запрос через построитель, который будет выводить данные за месяц декабрь прописью. Прописываю Месяц: MonthName(Month())...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru