попробуем более просто пример чем с годами и месяцами.

Вот пример кода на языке Twine/SugarCube 2, который пересчитывает $hours в дни недели и отображает название дней недели:
twine
<<set $hours = 168>> <!-- Установка количества часов -->
<<set $daysOfWeek = ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"]>> <!-- Массив дней недели -->
<<set $dayOfWeek = $daysOfWeek[$hours / 24 % 7]>> <!-- Вычисление дня недели -->
Текущий день недели: <<$dayOfWeek>> <!-- Отображение дня недели -->
 
В этом коде мы используем массив $daysOfWeek, который содержит названия дней недели. Мы также устанавливаем количество часов в переменной $hours. Затем мы вычисляем день недели, используя формулу $hours / 24 % 7, которая вычисляет количество дней, прошедших с начала недели, и использует остаток от деления на 7 для определения дня недели. Наконец, мы отображаем название дня недели с помощью переменной $dayOfWeek. Если вам нужно отобразить день недели в другом формате, вы можете изменить массив $daysOfWeek соответствующим образом.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Это прорыв!!!!)))) Я узнал, что цифирька в квадратных скобках это индекс... завтра я это забуду (такой вот сюжет прямо по Кизу "цветы для Элджернона" )))))

 

Вот измененный код на языке Twine SugarCube 2, который увеличивает индекс элемента массива $namedayweek на 1 каждые 24 часа:

<<if $hours >= 24>>

    <<set $days += Math.floor($hours / 24)>>

    <<set $gdays += Math.floor($hours / 24)>>

    <<set $hours %= 24>>

    <<set $namedayweekIndex = $namedayweekIndex + Math.floor($hours / 24)>>

    <<if $namedayweekIndex >= $namedayweek.length>>

        <<set $namedayweekIndex = $namedayweekIndex - $namedayweek.length>>

    <</if>>

<</if>>

 

<<set $namedayweek = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "ВС"]>>

<<set $namedayweekToday = $namedayweek[$namedayweekIndex]>>

 

В этом коде мы добавили переменную $namedayweekIndex, которая хранит текущий индекс элемента массива $namedayweek. Каждые 24 часа мы увеличиваем $namedayweekIndex на 1, и если $namedayweekIndex становится больше или равным длине массива $namedayweek, мы вычитаем длину массива, чтобы вернуться к началу массива. Затем мы устанавливаем $namedayweekToday равным элементу массива $namedayweek с индексом $namedayweekIndex.

============================================

лан сегодня спать, завтра главное проснуться и быть в состоянии видеть буквы и думать)) Может я таки рожу что-то


пример куска кода из qsp... тоже может пригодится:

 if hour >= 24:
     jump 'loop'
     end
end
 
if month = 1 or month = 3 or month = 5 or month = 7 or month = 8 or month = 10 or month = 12:
!31
if day > 31:day -= 31 & month += 1
elseif month = 2:
!28
if day > 28:day -= 28 & month += 1
elseif month = 0:
month = 1
if day > 31:day -= 31 & month += 1
elseif month = 13:
month = 1
if day > 31:day -= 31 & month += 1
else
!30
if day > 30:day -= 30 & month += 1
end
if day = 0:day = 1
 
 
if week > 7:
:loopweek
set week = week - 7
     if week > 7:
     jump 'loopweek'
     end
 
end
 
if week = 1:Set $week = 'Понедельник'
if week = 2:Set $week = 'Вторник'
if week = 3:Set $week = 'Среда'
if week = 4:Set $week = 'Четверг'
if week = 5:Set $week = 'Пятница'
if week = 6:Set $week = 'Суббота'
if week = 7:Set $week = 'Воскресенье'
 
if month = 0:Set month = 1
if month = 13:Set month = 1&year+=1
If month = 1:set $month = 'Январь'
If month = 2:set $month = 'Февраль'
If month = 3:set $month = 'Март'
If month = 4:set $month = 'Апрель'
If month = 5:set $month = 'Май'
If month = 6:set $month = 'Июнь'
If month = 7:set $month = 'Июль'
If month = 8:set $month = 'Август'
If month = 9:set $month = 'Сентябрь'
If month = 10:set $month = 'Октябрь'
If month = 11:set $month = 'Ноябрь'
If month = 12:set $month = 'Декабрь'
 


 

Profile

blocknote

January 2025

S M T W T F S
    1234
567891011
12131415 161718
19202122232425
2627 28293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Powered by Dreamwidth Studios