Получите недельное число от данной даты

Карта хеша должна быть намного быстрее. Вы не должны выбирать контейнер на основе того, как Вы хотите, чтобы объекты были расположены в конечном счете; Просто отсортируйте список (слово, частота) - пары в конце. Обычно будет меньше таких пар, которые будут отсортированы, чем слова в файлах, таким образом, асимптотических (и реальный), производительность с картой хеша будет лучше.

10
задан Nick Dandoulakis 30 October 2009 в 13:03
поделиться

6 ответов

It's doing two things here which don't match your expectations, I think: Assuming you want the week with Jan 1 in as week 1, and using Sunday as first day of the week So it has week 1 running from Sunday 28th December 2008 to Saturday 3rd Jan 2009.

Week 6 would begin on Sunday 1st Feb by this method.

The ISO standard is for week 1 to be the one containing 4 days of January, or the first Thursday of the year (different ways of expressing the same thing). You can specify this method of calculation and the first day of the week:

Format(SomeDate,"ww",vbMonday,vbFirstFourDays)

see here for syntax:

https://support.office.com/en-US/article/Format-Function-6F29D87B-8761-408D-81D3-63B9CD842530

27
ответ дан 3 December 2019 в 13:47
поделиться

Это может сработать: Format (YourDate, "ww", vbMonday)

5
ответ дан 3 December 2019 в 13:47
поделиться

Независимо от дня недели, в который начинается ваша неделя, вам необходимо передать однозначные значения даты. «31.01.2009» может быть только одна дата (31 января), но «1/2/2009» может быть 2 января (стиль США) или 1 февраля (все остальные, у кого больше здравого смысла, чем у нас).

В этом случае, Я бы использовал DateSerial (), чтобы удостовериться, что дата не была неправильно истолкована:

  Format(DateSerial(2009,2,1), "ww", vbMonday)

Хотя это не вызывает вашей проблемы, поскольку Access с пользой использует локализованные настройки даты вашей системы, я думаю, что вы все равно должны это сделать. Вы, безусловно, вынуждены делать это в SQL в Access, поэтому я не думаю, что это плохая привычка в коде и выражениях.

локализованные настройки даты, я думаю, вам все равно стоит это сделать. Вы, безусловно, вынуждены делать это в SQL в Access, поэтому я не думаю, что это плохая привычка в коде и выражениях.

локализованные настройки даты, я думаю, вам все равно стоит это сделать. Вы, безусловно, вынуждены делать это в SQL в Access, поэтому я не думаю, что это плохая привычка в коде и выражениях.

5
ответ дан 3 December 2019 в 13:47
поделиться

«Правильный результат» зависит от региона. Возможно, VBA позволит вам выбрать календарную систему, иначе вам не повезет.

Обратите внимание, что First-Day-On-xxDay - не единственная ваша проблема. Существует также различие в том, что такое полная неделя, поэтому Неделя 1 в одной системе может быть Неделей 53 предыдущего года в другой системе.

Так что проверьте тщательно и не поддавайтесь соблазну «исправить на 1».

2
ответ дан 3 December 2019 в 13:47
поделиться

If sunday is the first day of the week (as it is in some locales) then 6 is the correct weeknumber for "1/2/2009" (february 1. 2009)

0
ответ дан 3 December 2019 в 13:47
поделиться

There is a whole standard for week numbers: ISO-8601

http://en.wikipedia.org/wiki/ISO_8601#Week_dates

1
ответ дан 3 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

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