Как рассчитать високосный год в календаре Джалали? - PullRequest
5 голосов
/ 25 марта 2020

Как вы знаете, каждые четыре года в календаре Джалали происходит скачок (есть, конечно, несколько исключений)

И вместо 365 дней в году он имеет 366 дней :)

И другая проблема заключается в том, что некоторые месяцы составляют 29 дней, а некоторые - 30 дней, а некоторые - 31: |

Я использую библиотеку моментов для генерации этих дат (конечно, используя метод fa)

Этот веб-сайт, который называется تقویم , делает это очень хорошо.

var moment = require('moment-jalaali')
moment().format('jYYYY/jM/jD')

Теперь мой вопрос состоит в том, как определить, какие месяцы 29, 30 и 31, а какой год такое прыжок?

1 Ответ

4 голосов
/ 25 марта 2020

В моем предыдущем проекте у меня была та же проблема, вы должны использовать этот метод, чтобы сделать это

Эта функция не в javascript Но этот алгоритм работает очень хорошо для вашего високосного года

internal static bool IsLeapYear(int y)
{
    int[] matches = { 1, 5, 9, 13, 17, 22, 26, 30 };
    int modulus = y - ((y / 33) * 33);
    bool K = false;
    for (int n = 0; n != 8; n++) if (matches[n] == modulus) K = true;
    return K;
}
...