Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

1 Июль 2022, 10:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2   Вниз
  Печать  
Автор Тема: Интересные задачи  (Прочитано 4568 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 776


« Ответ #15: 29 Декабрь 2021, 13:06 »

Распознавание дат - это отдельная песня. Что касается D/M/YYYY в FormulaLocal, тут Calc ожидает разделители дат (точнее, маски), указанные в Date Acceptance Patterns. В дополнение к датам ISO 8601, которые распознаются независимо от настроек. Ещё распознаются даты, соответствующие настроенной локали (скажем, для ru-RU это разделитель - точка, порядок D.M.Y) - даже если эти маски убрать из Date Acceptance Patterns. Ну, и ещё строки типа "29 декабря". Но это, конечно, не относится к предмету пункта 9.2 Улыбка

А вообще распознавание и преобразование строк в значения в ЛО (и в частности в Calc) - это сильное колдунство. В первом приближении им занимается класс SvNumberFormatter сотоварищи (но, скажем, для Basic есть свои поместные волшебные дополнения).
« Последнее редактирование: 29 Декабрь 2021, 13:15 от mikekaganski » Записан

С уважением,
Михаил Каганский
sokol92
Мастер
*****
Online Online

Пол: Мужской
Сообщений: 939


WWW
« Ответ #16: 29 Декабрь 2021, 19:20 »

9.3. Тексты, "похожие" на локализованные даты.

В данном разделе мы рассматриваем только присвоение свойства FormulaLocal.
Если текст интепретируется как дата, то обе программы меняют числовой формат ячейки на соответствующий. К величайшему сожалению, LO до сих пор использует форматы с 2-х значным годом (эта проблема известна).

В Excel интерпретация текста как даты производится на основе региональных настроек (их можно получить с помощью свойства Application.International).

В Calc на основании локали числового формата ячейки можно получить "дополнительные" шаблоны для ввода даты c помощью метода getDateAcceptancePatterns (параметр - локаль).

Пользователь может указать свои шаблоны для ввода дат с помощью параметра Language Settings / Languages / Date acceptance patterns. Понятно, что шаблоны пользователя применяются при вводе данных в ячейки, имеющие локаль по умолчанию. Для каких еще локалей (заданных в форматах ячеек) эти шаблоны действуют - вопрос. Например, я задал дополнительный шаблон "D~M". Шаблон действует для локали по умолчанию, не действует для "en_US", "ge_GE" (изменено).

Если указано название месяца, то действует то же правило, что в п. 9.2.
Calc понимает название месяца в именительном и родительном падеже, Excel - только в именительном.
« Последнее редактирование: 29 Декабрь 2021, 19:47 от sokol92 » Записан

Владимир.
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!