Dzielenie dni w roku na kilka części - jaka metoda jest najlepsza?

Dzielenie dni w roku na kilka części - jaka metoda jest najlepsza?
  • Rejestracja: dni
  • Ostatnio: dni
0

Problem polega na tym, że chcę podzielić dni w roku na cztery ciągi, znając datę początkową każdego z nich.
Czyli np:

  1. ciąg zaczyna się pierwszego dnia roku, an=1+3n
  2. ciąg zaczyna się drugiego dnia roku an=2+3n
    itd.

I teraz w chcę mieć w dowolnym momencie dostęp do informacji, do którego ciągu należy wybrany dzień.
Czy jest jakiś w miarę prosty sposób, żeby to przechowywać? Czy raczej lepiej za każdym razem to obliczać?
Zakres (maksymalna data) to około 10 lat.

krzysiek050
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1272
0

numerCiagu=n%4?

  • Rejestracja: dni
  • Ostatnio: dni
0

A jeśli ciągi nie zaczynają się w pierwszych dniach roku i różnica między datami początkowymi jest większa?

MD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 280
0

Nie wiem czy o to chodzi ale moze tablica dwuwymiarowa tab[1.2.3.4][n] = an
tab[5][liczba_wyrazow+1]
I nie uzywac tab[0][0,1,2,4,...,n+1] tab[1][0] tab[2][0] ...
EDIT(jeszcze jeden):
an =3n + k
tab[k][n] = an

  • Rejestracja: dni
  • Ostatnio: dni
0

@michu45: to wydaje się najprostszym rozwiązaniem, ale jeśli potrzebuje to na okres kilkunastu lat?

fourfour
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 627
0

Coś mam dziś problemy z rozumieniem problemów... Jeśli dobrze rozumiem, to ... to bym zrobił chyba tak, że data początkowa, najstarsza = 0, a później każdy kolejny dzień - wiadomo ++ :) Twoje zestawy dni opisane są wzorem matematycznym, więc sprawdzenie czy data należy do któregoś z ciągów to po prostu przełożenie tej daty na liczbę dni od daty początkowej, i sprawdzenie, czy ta liczba pasuje do wzoru. Ale może coś namieszałem... :)

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

http://stackoverflow.com/a/19611801/1387438
numerCiągu = CurrentDayOfYear%3;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.