blocknote ([personal profile] blocknote) wrote2024-01-10 02:51 pm
Entry tags:

месяцы и годы с високосными

 продолжаю мучать бинг потому, что перплексити после пары дней общения со мной вместо ответов начал давать невнятные отписки. Глупеет ИИ от общения с дураками! Факт!

Но внезапно творчески разродился воскресший на моем компе Бинг. Выданный им код не работает разумеется, но и ошибок браузер не выдает... на первый взгляд логика в нем есть, осталось значит вкурить где и какие шестеренки из этого и как вставить.

Чем это лучше чем курить туториалы? Тем, что он решает конкретные задачи, а не загружает мне мозги абстрактными задачами, которые мне возможно в жизни никогда не понадобятся. В общем, сам от этих абстракций никогда на землю не спущусь и на практике не строчки не напишу. 
В общем, попытка намба ту


Здравствуйте, это Bing. Я могу помочь вам с написанием кода для Twine 2. 😊
 
Ваша задача состоит в том, чтобы пересчитать количество дней в количество месяцев, учитывая високосные годы. Для этого вам нужно знать, как определить, является ли год високосным, и как узнать, сколько дней в каждом месяце.
 
Високосный год - это год, который делится на 4 без остатка, но не делится на 100 без остатка, за исключением тех, которые делятся на 400 без остатка1. Например, 2000 год был високосным, а 2100 год не будет.
 
Количество дней в каждом месяце зависит от номера месяца и того, является ли год високосным. Обычно, в январе, марте, мае, июле, августе, октябре и декабре 31 день, в апреле, июне, сентябре и ноябре 30 дней, а в феврале 28 или 29 дней в зависимости от високосности года.
 
Для решения вашей задачи я написал следующий код:
 
<<set $months to []>>
<<set $daysInMonth to [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]>>
<<set $leapYear to false>>
<<set $year to 2024>>
<<if ($year % 4 == 0 and ($year % 100 != 0 or $year % 400 == 0))>>
  <<set $leapYear to true>>
  <<set $daysInMonth[1] to 29>>
<</if>>
<<for _i to 0; _i lt $days.length; _i++>>
  <<set _day to $days[_i]>>
  <<set _month to 0>>
  <<while _day gt 0>>
    <<set _day to _day - $daysInMonth[_month]>>
    <<set _month to _month + 1>>
  <</while>>
  <<set _day to _day + $daysInMonth[_month - 1]>>
  <<set $months.push(_month)>>
<</for>>
 
Этот код создает массив $months, в котором хранятся номера месяцев, соответствующие количеству дней в массиве $days. Он также учитывает високосность года, заданного переменной $year, и корректирует количество дней в феврале. Вы можете изменить значения этих переменных по своему усмотрению.
 
Надеюсь, что этот код вам поможет. Если у вас есть еще вопросы, я рад помочь. 😊

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

<<for _i to 0; _i lt $days.length; _i++>>

<<set _day to $days[_i]>>

<<set _month to 0>>

 

Что делает это код?

 

Давайте разберем, что делает этот фрагмент кода:

<<for _i to 0; _i lt $days.length; _i++>>: Этот фрагмент кода создает цикл, который будет выполняться для каждого элемента в массиве $days. Переменная _i увеличивается на 1 с каждой итерацией цикла.

<<set _day to $days[_i]>>: В этой строке кода переменной _day присваивается значение элемента массива $days с индексом _i. Таким образом, на каждой итерации цикла _day будет содержать значение соответствующего элемента массива $days.

<<set _month to 0>>: Здесь переменной _month присваивается значение 0. Однако, в дальнейшем этой переменной не присваивается новое значение в этом фрагменте кода.

Таким образом, этот фрагмент кода используется для итерации по элементам массива $days и присваивания их значения переменной _day. Переменная _month инициализируется значением 0, но в этом фрагменте кода ей не присваивается новое значение.

 

 Символ _ в языке программирования используется для именования переменных, которые не будут использоваться в коде. В данном случае, _i используется для итерации по элементам массива, но также может использоваться для обозначения переменной, которая не используется в коде. Это соглашение об именовании переменных используется во многих языках программирования, включая JavaScript, Python и другие.
 

Итерация в программировании - это один проход по циклу. Когда выполняется цикл, программа выполнит тело цикла по одному разу за каждую итерацию

2

. В контексте данного кода, _i используется для итерации по элементам массива, и он увеличивается на 1 после каждой итерации цикла. Это позволяет циклу for выполняться для каждого элемента массива до достижения последнего элемента массива

2

.

 



Post a comment in response:

(will be screened)
(will be screened)
(will be screened)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting