obtengo el año, el número de la semana, el número del día de la semana a partir del formato-fecha, PERO mis semanas comienzan el sábado
Este es un tipo de problema ISO general y sé que es potencialmente una pesadilla. XPath tiene una función útil
format-date
que tiene parámetros alucinantes con los que trabajaré
https://www.w3.org/TR/xpath-functions-31/#rules-for-datetime-formatting
pero el problema obvio es que mis semanas comienzan el sábado.
La solución a corto plazo es agregar dos días a la fecha y luego obtener el número de año, semana, día... esto al menos hará que las semanas se alineen, y más del 90% de las veces serán correctas, lamentablemente. No es solo un caso límite de la primera/última semana del año, porque si el número de la primera semana es incorrecto, entonces todos los números de la semana de ese año serán incorrectos.
Entonces, ¿cómo consigo
weeknumber
weekdaynumber
weekyear
si mis semanas empiezan en sabado?
La documentación (en algún lugar) en https://www.w3.org/TR/xpath-functions-31/#rules-for-datetime-formatting dice:
El idioma se utiliza para seleccionar las formas apropiadas que dependen del idioma de:
nombres (por ejemplo, de meses)
números expresados como palabras o como ordinales (veinte, vigésimo, vigésimo)
convención de horas (0-23 vs 1-24, 0-11 vs 1-12)
primer día de la semana, primera semana del año
Cuando sea apropiado, esta elección también puede tener en cuenta el valor del argumento $place, aunque esto no debe usarse para anular el idioma o cualquier sublenguaje que se especifique como parte del argumento del idioma.
Entonces deberías intentar especificar el idioma. Tenga en cuenta que el soporte para la variedad de lenguajes puede diferir según la versión y edición del procesador XSLT/XQuery/XPath (creo que Saxon PE/EE integra ICU para tener un soporte mucho más amplio que el que tiene HE (basado en las bibliotecas Java JRE)).