jquery/javascript: calcule los días de esta semana dado el número de semana y el número de año

Estoy buscando una forma sencilla de calcular los días calendario cuando se me da un número de semana y año usando jquery/javascript.

Ejemplo: la semana 18, año 2012 daría como resultado una lista que comienza con el domingo

2012-04-29 
2012-04-30 
2012-05-01 
2012-05-02 
2012-05-03 
2012-05-04 
2012-05-05

gracias

preguntado el 03 de mayo de 12 a las 15:05

Si el 1 de enero cae en miércoles, ¿cuándo comenzó la semana n.° 1? -

Con JS, puede obtener el día de la semana usando theDate.getDay(); Podrías calcular a partir de ahí. -

Es necesario especificar cuál es la primera semana del año. La primera semana, ¿cualquier día está incluido en el año? ¿La primera semana que incluye un lunes? ¿La primera semana que incluye un jueves? -

3 Respuestas

Si rehaces el código de esta pregunta obtendrás algo como esto:

function getDays(year, week) {
    var j10 = new Date(year, 0, 10, 12, 0, 0),
        j4 = new Date(year, 0, 4, 12, 0, 0),
        mon = j4.getTime() - j10.getDay() * 86400000,
        result = [];

    for (var i = -1; i < 6; i++) {
        result.push(new Date(mon + ((week - 1) * 7 + i) * 86400000));
    }

    return result;
}

DEMO: http://jsfiddle.net/TtmPt/

contestado el 23 de mayo de 17 a las 12:05

Si está utilizando el número de semana de estilo europeo jsfiddle.net/mayooresan/MGvsd - jay mayu

Debe decidir qué día comienza una semana: especificó el domingo. (Las semanas ISO comienzan el lunes).

  1. Consiguir el día de la semana del 1 de enero.
  2. Obtener la fecha de la domingo más cercano.
  3. If Enero 1 es un jueves, viernes, sábado o domingo, la primera semana del año comienza una semana después del último domingo de diciembre. De lo contrario, la primera semana del año comienza el último domingo de diciembre.
  4. Encuentre el primer día de cualquier semana del año ajustando la fecha a la primer día + (semanas * 7) - 7.

    var year= new Date().getFullYear(), firstDay= new Date(year, 0, 1), wd= firstDay.getDay();

    primerDía.establecerFecha(1 +(-1*(wd%7)));

    if(wd>3){ primerDía.establecerFecha(primerDía.obtenerFecha()+ 7); } var semana4= nueva Fecha(primerDía); semana4.establecerFecha(semana4.obtenerFecha()+(4*7)- 7);

    alerta (semana 4);

    valor devuelto:(Fecha)

    dom 20 de enero de 2013 00: 00: 00 GMT-0500 (hora estándar del este)

Respondido 25 Feb 15, 16:02

jquery/javascript: calcule los días de esta semana dado el número de semana y el número de año

 var years = $('#yr').val(); 
var weeks = $('#weekNo').val();

    var d = new Date(years, 0, 1);
        var dayNum = d.getDay();
        var diff = --weeks * 7;


        if (!dayNum || dayNum > 4) {
            diff += 7;
        }


        d.setDate(d.getDate() - d.getDay() + ++diff);
$('#result').val(d);  

[Demostración] [1]: https://jsfiddle.net/2bhLw084/

Respondido 25 Feb 15, 12:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.