Обмен изображениями не будет работать в Firefox, но работает в IE

Я собираюсь играть в Necromancer здесь: -)

Поскольку, похоже, не существует .Net-культуры, которая дает правильный номер недели ISO-8601, я бы стал обходить встроенное в неделю определение alltogether, и делать расчет вручную, вместо того, чтобы пытаться исправить частично правильный результат.

В результате я получил следующий метод расширения:

/// <summary>
/// Converts a date to a week number.
/// ISO 8601 week 1 is the week that contains the first Thursday that year.
/// </summary>
public static int ToIso8601Weeknumber(this DateTime date)
{
    var thursday = date.AddDays(3 - date.DayOfWeek.DayOffset());
    return (thursday.DayOfYear - 1) / 7 + 1;
}

/// <summary>
/// Converts a week number to a date.
/// Note: Week 1 of a year may start in the previous year.
/// ISO 8601 week 1 is the week that contains the first Thursday that year, so
/// if December 28 is a Monday, December 31 is a Thursday,
/// and week 1 starts January 4.
/// If December 28 is a later day in the week, week 1 starts earlier.
/// If December 28 is a Sunday, it is in the same week as Thursday January 1.
/// </summary>
public static DateTime FromIso8601Weeknumber(int weekNumber, int? year = null, DayOfWeek day = DayOfWeek.Monday)
{
    var dec28 = new DateTime((year ?? DateTime.Today.Year) - 1, 12, 28);
    var monday = dec28.AddDays(7 * weekNumber - dec28.DayOfWeek.DayOffset());
    return monday.AddDays(day.DayOffset());
}

/// <summary>
/// Iso8601 weeks start on Monday. This returns 0 for Monday.
/// </summary>
private static int DayOffset(this DayOfWeek weekDay)
{
    return ((int)weekDay + 6) % 7;
}

Прежде всего, ((int) date.DayOfWeek + 6)% 7) определяет день недели, 0 = понедельник, 6 = воскресенье.

date.AddDays (- ((int) date.DayOfWeek + 6)% 7) определяет дату понедельника, предварительно затребовав номер запрашиваемой недели.

Три дня спустя - это целевой день, который определяет, в каком году проходит неделя.

Если вы разделите день (число на ноль) в течение года на семь (округлить вниз), вы получите (нулевой) номер недели в году.

В c # результаты целочисленного вычисления округлены вниз неявно.

1
задан Sanjay Manohar 16 July 2010 в 10:34
поделиться

1 ответ

проблема заключается в следующем элементе:

<div id="linetopdiv"></div>

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

, например, если вы добавите z-index, как этот, он будет работать:

<div id="linetopdiv" style="z-index: -1;"></div>

Очевидно, что это всего лишь встроенный хакер, но он должен указать вам правильное направление

2
ответ дан 2 September 2019 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: