Probleme de numéro du semaine en fin d'année

17372
,

Bonjour,

je suis entrain de faire un petit projet qui permet de gérer des evenements dans un planning mais je rencontre un probleme sur les numéros de semaine surtout quand je change d'année. Je ne comprend pas tres bien comment fonctionne la numérotation des semaines.

En gros, j'ai 2 boutons, semaine suivante / semaine précédente, qui increment/décrement le numéro de la semaine et si c'est la derniere semaine de l'année il +1an et pour l'autre si c'est la premiere semaine il fait -1an.

Pour l'instant je fais ca :

def day_in_week(d, number)
    days = (d.beginning_of_week...d.beginning_of_week+number).map{|date| date}
    return days
end
<%
    today = Date.today
    week = (params['week'].presence || today.cweek).to_i
    year = (params['year'].presence || today.cwyear).to_i
    date = Date.commercial(year, week)
    last_week = date.end_of_year.cweek
    days = day_in_week(date, 9)
%>

<%= text_field_tag 'week', week %>
<%= text_field_tag 'year', year %>

<button onclick="this.form.week.value=(week.value == 1)?<%= last_week %>:parseInt(week.value)-1;this.form.year.value=(week.value == <%= last_week %>)?parseInt(year.value)-1:parseInt(year.value)">semaine précédente</button>
<button onclick="this.form.week.value=(week.value == <%= last_week %>)?1:parseInt(week.value)+1;this.form.year.value=(week.value == 1)?parseInt(year.value)+1:parseInt(year.value)">semaine suivante</button>

Mais quand je veux passer d'une année a l'aute cela fait un peu n'importe quoi. si vous avez un bout de solution, je suis preneur.

Merci, des bisous.