Вверх ↑
Этот топик читают: Гость
Ответов: 1891
Рейтинг: 110
#46: 2008-07-29 20:23:20 ЛС | профиль | цитата
введи, к примеру 12.09.1960
карма: 0
%time%
0
Ответов: 3851
Рейтинг: 159
#47: 2008-07-29 20:27:36 ЛС | профиль | цитата
история идёт по кругу/спирали
карма: 0
начавший
0
Ответов: 563
Рейтинг: 54
#48: 2008-07-29 20:28:56 ЛС | профиль | цитата
ну ошибочка есть можно подправить ))
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#49: 2008-07-30 13:21:46 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-21 11:37:14
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#50: 2008-07-30 14:13:19 ЛС | профиль | цитата
Новый писал(а):
а можно переделать схему, которую выложил Alexbootch


А чем она не устраивает

В компонент добавлять я смысла не вижу (привязка к языку), а вот отдельный IC нарезать можно, без проблем
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#51: 2008-07-30 14:36:15 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-21 11:37:15
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#52: 2008-07-30 15:31:15 ЛС | профиль | цитата
nesco писал(а):
В компонент добавлять я смысла не вижу
а сделать отдельный Data2String


и не забыть, что это только сегодня
"тридцатое июля" , а вчера или завтра
"тридцатого июля"

------------ Дoбавленo:

о чем Alexbootch по моему забыл
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#53: 2008-07-30 15:58:00 ЛС | профиль | цитата
Tad писал(а):
и не забыть, что это только сегодня

Челу нужно дату констатировать, а это настоящее время.
Тебе надо вот и делай склонение дат, а мне оно нафиг не нужно.

Tad писал(а):
а сделать отдельный Data2String

я еще раз говорю, что есть привязкак к языку, поэтому делать его не буду штатным
карма: 22

0
Ответов: 1891
Рейтинг: 110
#54: 2008-07-30 16:53:42 ЛС | профиль | цитата
Tad, писал(а):
о чем Alexbootch по моему забыл


Tad, это был все лишь пример реализации, а на счет "сегодня", "вчера" и "завтра" думаю, что пользователи и сами могут сделать, если будет компонент (нужно то лишь исправить мальца или переделать компонент и использовать два компонента). А для чего вообще нужно писать дату во времени?
карма: 0
%time%
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#55: 2008-07-30 17:05:43 ЛС | профиль | цитата
Новый, вот, просил, получи


Add(MainForm,8394616,196,112)
{
Left=20
Top=105
Width=498
Height=146
}
Add(InlineCode,4917906,259,168)
{
WorkPoints=#7:Convert|
EventPoints=#6:Result|
DataPoints=#4:Data|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|21: Data: THI_Event;|23: Result: THI_Event;|53: procedure Convert (var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|39:function DateNum(num: integer): string;|5:const|68: tens: array [0..3] of string = ('', '', 'двадцать ', 'тридцать ');|70: tens_0: array [0..3] of string = ('', '', 'двадцатое', 'тридцатое');|100: ones: array [0..19] of string = ('', 'первое', 'второе', 'третье', 'четвертое', 'пятое', 'шестое',|63: 'седьмое', 'восьмое', 'девятое', 'десятое', 'одиннадцатое',|65: 'двенадцатое', 'тринадцатое', 'четырнадцатое', 'пятнадцатое',|69: 'шестнадцатое', 'семнадцатое', 'восемнадцатое', 'девятнадцатое');|3:var|21: t: byte; // десятки|21: o: byte; // единицы|5:begin|15: result := '';|39: if (num = 0) or (num > 99) then Exit;|18: t := num div 10;|18: o := num mod 10;|29: if (o = 0) and (t > 1) then|24: result := tens_0[t]|24: else if t > 2 then |41: result := tens[t] + ones[num mod 30]|9: else |42: result := tens[t] + ones[num mod 20];|4:end;|0:|39:function YearNum(num: integer): string;|5:const|105: razryad: array [0..4] of string = ('', ' одна тысяча', ' две тысячи', ' три тысячи', ' четыре тысячи');|117: razryad_0: array [0..4] of string = ('', ' однотысячного', ' двухтысячного', ' трехтысячного', ' четырехтысяного');|71: hundreds: array [0..9] of string = ('', ' сто', ' двести', ' триста',|68: ' четыреста', ' пятьсот', ' шестьсот', ' семьсот', ' восемьсот',|18: ' девятьсот');|84: hundreds_0: array [0..9] of string = ('', ' сотого', ' двухсотого', ' трехсотого',|84: ' четырехсотого', ' пятисотого', ' шестисотого', ' семисотого', ' восьмисотого',|21: ' девятисотого');|67: tens: array [0..9] of string = ('', '', ' двадцать', ' тридцать',|72: ' сорок', ' пятьдесят', ' шестьдесят', ' семьдесят', ' восемьдесят',|18: ' девяносто');|73: tens_0: array [0..9] of string = ('', '', ' двадцатого', ' тридцатого',|89: ' сорокового', ' пятидесятого', ' шестидесятого', ' семидесятого', ' восьмидесятого',|20: ' девяностого');|114: ones: array [0..19] of string = ('', ' первого', ' второго' , ' третьего', ' четвертого', ' пятого', ' шестого',|73: ' седьмого', ' восьмого', ' девятого', ' десятого', ' одиннадцатого',|73: ' двенадцатого', ' тринадцатого', ' четырнадцатого', ' пятнадцатого',|77: ' шестнадцатого', ' семнадцатого', ' восемнадцатого', ' девятнадцатого');|3:var|20: r: byte; // тысячи|19: m: byte; // сотни|21: t: byte; // десятки|21: o: byte; // единицы|5:begin|15: result := '';|23: if num = 0 then Exit;|20: r := num div 1000;|30: m := (num mod 1000) div 100;|28: t := (num mod 100) div 10;|18: o := num mod 10;|25: if (m + t + o) = 0 then|27: result := razryad_0[r]|12: else begin|25: if (t + o) = 0 then |44: result := razryad[r] + hundreds_0[m]|15: else begin|40: if (o = 0) and (t > 1) then |57: result := razryad[r] + hundreds[m] + tens_0[t]|26: else if t < 2 then|73: result := razryad[r] + hundreds[m] + ones[num mod 20] |16: else |66: result := razryad[r] + hundreds[m] + tens[t] + ones[o];|9: end;|14: end; |4:end;|0:|30:procedure THiAsmClass.Convert;|34:var str,date,month,year: string;|5:begin|13: str := '';|95: year := Date2StrFmt('dd.MMMM.yyyy', Str2DateTimeFmt('dd.MM.yyyy', ReadString(_Data, Data)));|28: if year <> '' then begin |32: date := GetTok(year, '.');|33: month := GetTok(year, '.');|85: str := DateNum(str2int(date)) + ' ' + month + YearNum(str2int(year)) + ' года';|7: end;|42: _hi_CreateEvent(_Data, @Result, str); |5:end; |0:|4:end.|
link(Result,9399025:doText,[])
link(Data,3479417:Text,[])
}
Add(Edit,3479417,259,112)
{
Left=175
Top=20
Width=145
Text="31.10.1961"
}
Add(Label,9399025,315,168)
{
Left=5
Top=80
Width=475
Height=20
Caption=""
AutoSize=1
Alignment=2
}
Add(Button,10566411,196,168)
{
Left=220
Top=45
Caption="Convert"
link(onClick,4917906:Convert,[])
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#56: 2008-07-30 18:24:39 ЛС | профиль | цитата
Alexbootch писал(а):
А для чего вообще нужно писать дату во времени?

Например объявление:
C первого августа две тысячи восьмого года активизируется вирус ...
Первое августа две тысячи восьмого года - день защиты животных.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1891
Рейтинг: 110
#57: 2008-07-30 19:22:01 ЛС | профиль | цитата
Tad, писал(а):
Например объявление:
C первого августа две тысячи восьмого года активизируется вирус ...
Первое августа две тысячи восьмого года - день защиты животных.


Понятно, но думаю, что очень не многим это нужно
карма: 0
%time%
0
Ответов: 16884
Рейтинг: 1239
#58: 2008-07-30 19:57:53 ЛС | профиль | цитата
Alexbootch, еще может быть "Поздравляю Вас, дорогие школьники, с первым сентября две тысячи восмого года "


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1891
Рейтинг: 110
#59: 2008-07-31 12:25:02 ЛС | профиль | цитата
Tad, писал(а):
Alexbootch, еще может быть "Поздравляю Вас, дорогие школьники, с первым сентября две тысячи восмого года "


Tad, не кто не будет так извращаться и делать для это специальный компонент. Дата прописью в основном нужна для вставки в какие-либо документы (например, в договор)
карма: 0
%time%
0
Ответов: 16884
Рейтинг: 1239
#60: 2008-07-31 12:45:26 ЛС | профиль | цитата
Alexbootch, считай, что я печатал речь для гостя школьного праздника 1.9.2008 года и мне потом сказали что все даты должны быть прописью. Ну ирешил отредактировать с помощью ХиАсма
------------ Дoбавленo:

Tad писал(а):
Дата прописью в основном нужна для вставки в какие-либо документы (например, в договор)
А если для договора, то нужно именно "Составлен двадцать первого" а не "Составлен двадцать первое"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)