Drugi konkurs z Autentika.pl – ogłoszenie wyników

Czas ogłosić wyniki konkursu z Autentika.pl! Tym razem największą popularnością cieszyło się zadanie z datami, natomiast mimo mniejszej ilości nadesłanych rozwiązań, niezwykle trudno było mi wyłonić zwycięzcę z zadania pierwszego.

Zatem Panie i Panowie, książki Head First: Design Patterns i Smashing Magazinie Book #3 otrzymuje Adrian Wądrzyk za następujące rozwiazanie.

Responsive Web Design powędruje natomiast do Aleksandra Nowodzińskiego, za poniższy kod:

var getWeek = function(d) {var e=new Date(d),f=e.setDate(d.getDate()-(d.getDay()+6)%7+3);e.setMonth(0,4);return((f-e)/6048e5)+1.5|0};

Nagrodzonych zapraszam do kontaktu w celu podania danych adresowych. Gratuluję!

Komentarze

1

Moje rozwiazanie getWeek jest krotsze. Teraz juz moge sie podzielic:
http://pastie.org/private/rjtq89lbj9ojpyuph2za
Cos nie tak ? Wykorzystalem jakas deprecated metode ?

krzysiek
2

zmieniasz podaną w argumencie datę.

3

Zakres dat, według którego testowałem:

var dates = [['1970-01-01', 1], ['1972-01-07', 1], ['1972-01-08', 1],  ['1972-01-09', 1], ['1972-01-10', 2], ['1970-12-30', 53], ['1972-01-01',52], ['2012-11-06', 45], ['2013-01-06', 1], ['2038-01-01', 53], ['2038-01-18', 3]];
4

krzysiek: a poza tym Twoja metoda liczy tygodnie od 1970.

5
6

Damianie, czy mógłbyś zamieścić liczbę przesłanych rozwiązań/odpowiedzi na poszczególne zadania. Być może przegrani chcieli by się dowiedzieć z jaką liczbą współzawodników przyszło im się mierzyć ;)

eM
7

Damianie, jak działa „1.5|0” na końcu kodu? I dlaczego daje to 1?

R
8

@R: Operatory bitowe w JS castują liczby na 32-bitowe integery. Czyli po prostu ucinają część dziesiętną. Ponieważ OR z 0 nigdy nie zmienia właściwej liczby, działa to jak Math.floor.

Inna sprawą jest to, że |0 dotyczy całej wartości przed operatorem, a nie tylko 1.5, ze względu na kolejność działań w JS (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence)

9

@Aleksander Nowodziński: dzięki!

Dodaj komentarz

Dozwolone tagi: <blockquote>, <code>, <strong>