Неужели первая работает правильно? Вы там много лишнего, кажется, написали. (Особенно интересно звучит строка
Edit3.Text:=(Edit3.Text);.)
Берём остаток от деления на 10. Получаем очередную цифру.
Делим текущее число на 10.
Если число не равно 0, повторяем дальше.
И больше ничего не надо! (Цифры получаются в обратном порядке, но это совершенно не проблема.)
Вторая похожа на первую. Если от требуемого года отнять 1984, получим число, которое равно
, где
— номер 60-летнего цикла, нам не нужный,
— это «цифра цвета» от 0 до 4,
— «цифра животного» от 0 до 11. Исходя из условий, цвет 0 соответствует зелёному, 1 — красному и т. д., а животное 0 — крысе, 1 — корове и тоже т. д.. Выделяем цифры как с числом, только теперь основание системы счисления не одно, а два — первая цифра по основанию 12, а вторая — 5.
P. S. Код лучше окружить тегами
[code]...[/code], хотя без отступов выглядит одинаково нечитаемо.