Selector de fecha y selector de semana

buen día comunidad

en esta ocasión estoy tratando de hacer una programación por semana y para esto necesito seleccionar el año y la semana para que se muestren los días de esa semana

image
En el selector de fecha me gustaría tener solo el año sin el día ni el mes se podrá?

De la misma forma necesito un selector de semana
sabemos que el numero de semanas en un año son 52 y algo mas

y que este selector de semana este relacionado con el año previamente seleccionado
es así como me debe mostrar los días que están dentro de esa semana en 7 botones de domingo a sábado
¿alguna idea? o ejemplo

saludos

logre hacer los años con los botones

quisiera hacer lo mismo con las semanas sin enumerar las semanas
la idea es que salga de manera automática de acuerdo a el año ya que puede variar de 52 a 53 semanas
saludos

You might need to use some javascript in a webviewer to return the dates and days

var d = (1 + (weekNumber - 1) * 7);
var sd = new Date(year, 0, d);
console.log( "Start Date of Week Number is:" + sd);

You can also do the reverse:

currentDate = new Date();
startDate = new Date(currentDate.getFullYear(), 0, 1);
var days = Math.floor((currentDate - startDate) / (24 * 60 * 60 * 1000));
var weekNumber = Math.ceil(days / 7);
console.log("Week number of " + currentDate + " is : " + weekNumber);

(but if you have the date, it is easy enough to get the week number out of the instant)

To get the number of weeks in a year:

const getWeekFor = (date) => {
    const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
    const dayNum = d.getUTCDay() || 7;
    const utc = new Date(d.setUTCDate(d.getUTCDate() + 4 - dayNum));
    const yearStart = new Date(Date.UTC(utc.getUTCFullYear(), 0, 1)).getTime();
    return Math.ceil(((d.getTime() - yearStart) / 86400000 + 1) / 7);
};

const weeks = getWeekFor(new Date(2023, 11, 28)) // 52.
console.log(weeks);

(Credits @ StackOverflow for all these snippets)

Information about ISO Week.

The ISO 8601 definition for week 01 is the week with the first Thursday of the Gregorian year
If 1 January is on a Monday, Tuesday, Wednesday or Thursday, it is in W01. If it is on a Friday, it is part of W53 of the previous year. If it is on a Saturday, it is part of the last week of the previous year which is numbered W52 in a common year and W53 in a leap year. If it is on a Sunday, it is part of W52 of the previous year.

muy buena definición en la teoría justamente por eso quiero aplicarlo en la practica

ya pude hacer que cuando presione los botones sumen y resten
ahora quisiera limitarlos
en este caso
al botón sumar solo quiero que llegue hasta 52
al botón restar que no pase de 1

bloques
image

hoy
image

presiono botón + y se pasa de 52
image

saludos

Here's how I would do it ...

In Click event for increase button
If week < 52 then
set week to week + 1

In Click event for decrease button
If week > 1 then
set week to week - 1

eso ya esta

lo que me falta es como bosquejo esos ese bloques con el si, entonces

podrías bosquejar en unas bloques para entenderlo?
saludos

image
perfecto

existe alguna forma de obtener la cantidad de semanas que tiene este año? del Clock

Related:

Maybe just use 53 as the limit instead of 52?

What could go wrong?

In reality, how many years do you actually need to work with, and what would the range be (from which year to which year)

weeks in year:

2023 52
2024 52
2025 52
2026 53
2027 52
2028 52
2029 52
2030 52
2031 52
2032 53

si eso es lo que deseo
solo de un año
por ejemplo
si digito el año 2020 debería aparecer 53 en otro lavel
saludos

image

no domino el JavaScript recién empiezo
quisiera obtenerlo con bloques el 53
saludos

Not sure you can. Even @Juan_Antonio 's examples are using js.

There is a run JS block for the webviewer you can use to return a value with the webviewstring. That is as blocky as you can get.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.