|
 |
Le 2025-12-20 à 11:47, kurtz le pirate a écrit :
> On 20/12/2025 13:27, jr wrote:
>> hi,
>>
>> kurtz le pirate <kur### [at] free fr> wrote:
>>> On 20/12/2025 00:16, jr wrote:
>>>> I wrote/"needed" a macro ('LatinYear()') ...
>>
>>> Good work, a little too complicated, but good work.
>>
>> thank you, very much. you're right, of course. attached an update, less
>> "cruft" :-). also I got rid of the '#for', and the macro can now be
>> used with
>> version 3.7 too (tested with v3.7.0.8).
>>
>>
>> enjoy, jr.
>
> what do you think of this version?
>
>
> // --- macro start
> #macro ToRoman(DecimalToConvert)
> #local Nb = 13;
> #local values = array[Nb] {1000,900,500,400,100,90,50,40,10,9,5,4,1};
> #local symbols = array[Nb]
> {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
> #local roman = "";
> #local num = DecimalToConvert;
> #local i = 0;
> #while ( i<Nb & num>0 )
> #while( values[i] <= num )
> #local num = num - values[i];
> #local roman = concat(roman,symbols[i]);
> #end
> #local i = i + 1;
> #end
> roman
> #end
> // --- macro end
>
>
> #declare D = 10191; // beginning of the Dune Story
> #declare R = ToRoman(D);
> #debug concat(str(D,0,0)," -> ",R,"\n")
>
>
>
>
> ...of course, valid only for positive years.
Just use the absolute value of the year and add «BCE» for the negative
years.
-2027 → MMXXVII BCE
Now, need a font supporting macron for years 1 000 000 to 999 999 999.
And double macron for years 1 000 000 000 to 999 999 999 999.
Post a reply to this message
|
 |