Skip to content

Исправь parseDDMMYYYY, чтобы понимал также YYYYMMDD и корректно определял формат#285

Merged
ideav merged 3 commits intomainfrom
issue-284-2bd6cc606ef3
Feb 7, 2026
Merged

Исправь parseDDMMYYYY, чтобы понимал также YYYYMMDD и корректно определял формат#285
ideav merged 3 commits intomainfrom
issue-284-2bd6cc606ef3

Conversation

@konard
Copy link
Copy Markdown
Collaborator

@konard konard commented Feb 7, 2026

🎯 Решение проблемы

Исправлена функция parseDDMMYYYY для автоматического определения формата даты.

Fixes #284

📝 Описание изменений

Функция parseDDMMYYYY теперь поддерживает оба формата даты:

  • DD.MM.YYYY (существующий формат, например: "07.02.2026")
  • YYYYMMDD (новый формат, например: "20260207")

🔍 Логика определения формата

Функция автоматически определяет формат по следующим критериям:

  1. Формат YYYYMMDD: Если строка содержит ровно 8 цифр подряд без разделителей

    • Проверка валидности месяца (1-12) и дня (1-31)
    • Пример: "20260207"new Date(2026, 1, 7)
  2. Формат DD.MM.YYYY: Если строка содержит точки как разделители

    • Поддержка как с ведущими нулями, так и без них
    • Примеры: "07.02.2026" или "7.2.2026"new Date(2026, 1, 7)

✅ Тестирование

Добавлены комплексные тесты в experiments/test-date-parsing.js, которые проверяют:

  • ✓ Парсинг формата YYYYMMDD через parseDDMMYYYY
  • ✓ Парсинг формата DD.MM.YYYY через parseDDMMYYYY
  • ✓ Валидацию некорректных дат (неверный месяц/день)
  • ✓ Обработку краевых случаев (слишком короткие/длинные строки, не-цифры)
  • ✓ Корректную работу formatDateForInput с обоими форматами
  • ✓ Корректную работу formatDateForHtml5 с обоими форматами

Все тесты проходят успешно ✓

🔄 Обратная совместимость

Изменения полностью обратно совместимы:

  • Существующий код, использующий DD.MM.YYYY, продолжает работать без изменений
  • Функция parseDDMMYYYYHHMMSS автоматически получает поддержку YYYYMMDD через fallback к parseDDMMYYYY
  • Функция parseYYYYMMDD остается в коде для явного использования при необходимости

📂 Измененные файлы

  • assets/js/integram-table.js: Обновлена функция parseDDMMYYYY
  • experiments/test-date-parsing.js: Добавлены тесты для проверки автоопределения формата
  • experiments/test-results.log: Результаты тестирования

Решение создано AI issue solver

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #284
@konard konard self-assigned this Feb 7, 2026
Enhanced parseDDMMYYYY function to automatically detect and parse both:
- DD.MM.YYYY format (existing support)
- YYYYMMDD format (new support)

The function now tries YYYYMMDD format first (8 consecutive digits),
then falls back to DD.MM.YYYY format. This allows the API to send
dates in either format without requiring separate parsing logic.

Updated test file to verify both formats work correctly through
parseDDMMYYYY. All tests pass successfully.

Related: #284

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@konard konard marked this pull request as ready for review February 7, 2026 11:12
@konard konard changed the title [WIP] Исправь parseDDMMYYYY, чтобы понимал также YYYYMMDD и корректно определял формат Исправь parseDDMMYYYY, чтобы понимал также YYYYMMDD и корректно определял формат Feb 7, 2026
@konard
Copy link
Copy Markdown
Collaborator Author

konard commented Feb 7, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $1.310067 USD
  • Calculated by Anthropic: $1.547219 USD
  • Difference: $0.237152 (+18.10%)
    📎 Log file uploaded as Gist (546KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@ideav ideav merged commit ecd264e into main Feb 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Исправь parseDDMMYYYY, чтобы понимал также YYYYMMDD и корректно определял формат

2 participants