Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

stdDate.Weekday ignores explicit FirstDayOfWeek because Not is bitwise

Cerrado Apto para principiantes
#170 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Área
backend

Línea de trabajo

Empieza con src/WIP/stdDate.cls y revisa las guardas de Weekday y WeekdayName, así como la llamada anidada a Weekday. Reproduce el caso del domingo 2026-10-25 con la configuración regional predeterminada de EE. UU. y el lunes como inicio explícito de la semana; después, comprueba tanto los resultados numéricos como los nombres. El issue señala que la prueba del nombre también depende de la corrección independiente As String, cuyo seguimiento se lleva en #169. Se considera terminado cuando ambos getters respetan los argumentos explícitos para el primer día de la semana y los valores predeterminados siguen funcionando.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

stdDate.Weekday ignores an explicit FirstDayOfWeek when a Country default is set. The current upstream src/WIP/stdDate.cls has this guard in both Weekday and WeekdayName:

If Not FirstDayOfWeek Then FirstDayOfWeek = pFirstDayOfWeek

In VBA, Not on the numeric VbDayOfWeek enum is bitwise. Not 0, Not 1, and Not 2 are all nonzero, so the condition overwrites explicit 1–7 values too.

Fresh Excel reproduction (Sunday 2026-10-25):

Dim d As stdDate
Set d = stdDate.CreateFromUnits(2026, 10, 25)
d.Country = "US"                  ' instance default: Sunday
Debug.Print d.Weekday(vbMonday)  ' actual 1; VBA.Weekday(DateSerial(2026, 10, 25), vbMonday) = 7

A bounded fix is to use If FirstDayOfWeek = vbUseSystemDayOfWeek Then ... in both getters and to pass the resolved argument to the nested getter in WeekdayName: Weekday(FirstDayOfWeek). The WeekdayName return-type error is tracked separately in #169; its As String correction is required to execute the name test. A guard-only mutant still returned the wrong name for an explicit Monday start, while the combined local patch passed 196 full/abbreviated name cases across seven dates, US/UK defaults, and first days 1–7. I also checked the default-country numeric/name paths. This is a behavioral correction to explicit arguments, not a performance claim.

Lenguaje dominante
VBA
Estrellas
412
Forks
70
Merge medio
20 h 38 min
PR fusionados (30 d)
18

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sancarn/stdVBA

Todos los issues de sancarn/stdVBA

Issues similares

Más issues de Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.