sasha330sasha
Дата: Понедельник, 27.11.2023, 13:16 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Добрый день! Прошу помочь оптимизировать код даты, чтобы не расписывать каждой цифре условие. Формат даты должен быть таким - «27» ноября 2023 г. Мой скрипт: [vba]Код
function getDataPro(){ var today = new Date(); var todayStr = new String; today.setDate(today.getDate()); if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 1) { todayStr = "«01»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 2) { todayStr = "«02»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 3) { todayStr = "«03»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 4) { todayStr = "«04»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 5) { todayStr = "«05»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 6) { todayStr = "«06»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 7) { todayStr = "«07»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 8) { todayStr = "«08»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 9) { todayStr = "«09»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 10) { todayStr = "«10»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 11) { todayStr = "«11»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 12) { todayStr = "«12»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 13) { todayStr = "«13»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 14) { todayStr = "«14»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 15) { todayStr = "«15»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 16) { todayStr = "«16»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 17) { todayStr = "«17»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 18) { todayStr = "«18»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 19) { todayStr = "«19»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 20) { todayStr = "«20»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 21) { todayStr = "«21»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 22) { todayStr = "«22»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 23) { todayStr = "«23»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 24) { todayStr = "«24»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 25) { todayStr = "«25»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 26) { todayStr = "«26»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 27) { todayStr = "«27»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 28) { todayStr = "«28»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 29) { todayStr = "«29»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 30) { todayStr = "«30»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 31) { todayStr = "«31»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 1) { todayStr += " января"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 2) { todayStr += " февраля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 3) { todayStr += " марта"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 4) { todayStr += " апреля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 5) { todayStr += " мая"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 6) { todayStr += " июня"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 7) { todayStr += " июля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 8) { todayStr += " августа"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 9) { todayStr += " сентября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 10) { todayStr += " октября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 11) { todayStr += " ноября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 12) { todayStr += " декабря"; } if(Utilities.formatDate(today, 'GMT+03:00', 'yyyy') == 2023) { todayStr += " 2023 г."; } if(Utilities.formatDate(today, 'GMT+03:00', 'yyyy') == 2024) { todayStr += " 2024 г."; } return todayStr; }
[/vba]
Добрый день! Прошу помочь оптимизировать код даты, чтобы не расписывать каждой цифре условие. Формат даты должен быть таким - «27» ноября 2023 г. Мой скрипт: [vba]Код
function getDataPro(){ var today = new Date(); var todayStr = new String; today.setDate(today.getDate()); if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 1) { todayStr = "«01»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 2) { todayStr = "«02»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 3) { todayStr = "«03»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 4) { todayStr = "«04»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 5) { todayStr = "«05»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 6) { todayStr = "«06»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 7) { todayStr = "«07»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 8) { todayStr = "«08»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 9) { todayStr = "«09»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 10) { todayStr = "«10»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 11) { todayStr = "«11»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 12) { todayStr = "«12»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 13) { todayStr = "«13»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 14) { todayStr = "«14»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 15) { todayStr = "«15»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 16) { todayStr = "«16»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 17) { todayStr = "«17»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 18) { todayStr = "«18»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 19) { todayStr = "«19»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 20) { todayStr = "«20»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 21) { todayStr = "«21»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 22) { todayStr = "«22»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 23) { todayStr = "«23»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 24) { todayStr = "«24»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 25) { todayStr = "«25»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 26) { todayStr = "«26»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 27) { todayStr = "«27»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 28) { todayStr = "«28»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 29) { todayStr = "«29»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 30) { todayStr = "«30»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 31) { todayStr = "«31»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 1) { todayStr += " января"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 2) { todayStr += " февраля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 3) { todayStr += " марта"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 4) { todayStr += " апреля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 5) { todayStr += " мая"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 6) { todayStr += " июня"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 7) { todayStr += " июля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 8) { todayStr += " августа"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 9) { todayStr += " сентября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 10) { todayStr += " октября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 11) { todayStr += " ноября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 12) { todayStr += " декабря"; } if(Utilities.formatDate(today, 'GMT+03:00', 'yyyy') == 2023) { todayStr += " 2023 г."; } if(Utilities.formatDate(today, 'GMT+03:00', 'yyyy') == 2024) { todayStr += " 2024 г."; } return todayStr; }
[/vba] sasha330sasha
Сообщение отредактировал Serge_007 - Понедельник, 27.11.2023, 13:46
Ответить
Сообщение Добрый день! Прошу помочь оптимизировать код даты, чтобы не расписывать каждой цифре условие. Формат даты должен быть таким - «27» ноября 2023 г. Мой скрипт: [vba]Код
function getDataPro(){ var today = new Date(); var todayStr = new String; today.setDate(today.getDate()); if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 1) { todayStr = "«01»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 2) { todayStr = "«02»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 3) { todayStr = "«03»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 4) { todayStr = "«04»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 5) { todayStr = "«05»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 6) { todayStr = "«06»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 7) { todayStr = "«07»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 8) { todayStr = "«08»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 9) { todayStr = "«09»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 10) { todayStr = "«10»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 11) { todayStr = "«11»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 12) { todayStr = "«12»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 13) { todayStr = "«13»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 14) { todayStr = "«14»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 15) { todayStr = "«15»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 16) { todayStr = "«16»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 17) { todayStr = "«17»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 18) { todayStr = "«18»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 19) { todayStr = "«19»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 20) { todayStr = "«20»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 21) { todayStr = "«21»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 22) { todayStr = "«22»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 23) { todayStr = "«23»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 24) { todayStr = "«24»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 25) { todayStr = "«25»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 26) { todayStr = "«26»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 27) { todayStr = "«27»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 28) { todayStr = "«28»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 29) { todayStr = "«29»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 30) { todayStr = "«30»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'dd') == 31) { todayStr = "«31»"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 1) { todayStr += " января"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 2) { todayStr += " февраля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 3) { todayStr += " марта"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 4) { todayStr += " апреля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 5) { todayStr += " мая"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 6) { todayStr += " июня"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 7) { todayStr += " июля"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 8) { todayStr += " августа"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 9) { todayStr += " сентября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 10) { todayStr += " октября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 11) { todayStr += " ноября"; } if(Utilities.formatDate(today, 'GMT+03:00', 'MM') == 12) { todayStr += " декабря"; } if(Utilities.formatDate(today, 'GMT+03:00', 'yyyy') == 2023) { todayStr += " 2023 г."; } if(Utilities.formatDate(today, 'GMT+03:00', 'yyyy') == 2024) { todayStr += " 2024 г."; } return todayStr; }
[/vba] Автор - sasha330sasha Дата добавления - 27.11.2023 в 13:16
Gustav
Дата: Понедельник, 27.11.2023, 16:17 |
Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2794
Репутация:
1160
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
sasha330sasha , эх, хорошо, что дней всего 31, а месяцев всего 12, а то бы Вы, чувствую, "развернулись" бы в генерировании скриптового кода... Смотрите, как надо/можно по-человечески: [vba]Код
function testDateFormat() { var d = new Date(2023,10,27); // месяцы начинаются с 0 (январь) и до 11 (декабрь); ноябрь = 10 var deng = Utilities.formatDate(d, 'GMT+03:00', '«dd» MMMM yyyy г.'); // «27» November 2023 г. var drus = LanguageApp.translate(deng, 'en', 'ru'); // «27» ноября 2023 г. Logger.log(drus); }
[/vba] P.S. Даже можно было такой укороченный шаблон использовать "«dd» MMMM y 'y'", причём символ в экранирующих кавычках 'y' корректно распознается "переводчиком" как "г.". И, оказывается, можно совсем не заморачиваться на букву "г." - в русском "проговоре" она предусмотрена автоматически, а шаблон можно сделать совсем коротким: '«dd» MMMM y'.
sasha330sasha , эх, хорошо, что дней всего 31, а месяцев всего 12, а то бы Вы, чувствую, "развернулись" бы в генерировании скриптового кода... Смотрите, как надо/можно по-человечески: [vba]Код
function testDateFormat() { var d = new Date(2023,10,27); // месяцы начинаются с 0 (январь) и до 11 (декабрь); ноябрь = 10 var deng = Utilities.formatDate(d, 'GMT+03:00', '«dd» MMMM yyyy г.'); // «27» November 2023 г. var drus = LanguageApp.translate(deng, 'en', 'ru'); // «27» ноября 2023 г. Logger.log(drus); }
[/vba] P.S. Даже можно было такой укороченный шаблон использовать "«dd» MMMM y 'y'", причём символ в экранирующих кавычках 'y' корректно распознается "переводчиком" как "г.". И, оказывается, можно совсем не заморачиваться на букву "г." - в русском "проговоре" она предусмотрена автоматически, а шаблон можно сделать совсем коротким: '«dd» MMMM y'.Gustav
МОИ: Ник , Tip box: 41001663842605
Сообщение отредактировал Gustav - Понедельник, 27.11.2023, 17:46
Ответить
Сообщение sasha330sasha , эх, хорошо, что дней всего 31, а месяцев всего 12, а то бы Вы, чувствую, "развернулись" бы в генерировании скриптового кода... Смотрите, как надо/можно по-человечески: [vba]Код
function testDateFormat() { var d = new Date(2023,10,27); // месяцы начинаются с 0 (январь) и до 11 (декабрь); ноябрь = 10 var deng = Utilities.formatDate(d, 'GMT+03:00', '«dd» MMMM yyyy г.'); // «27» November 2023 г. var drus = LanguageApp.translate(deng, 'en', 'ru'); // «27» ноября 2023 г. Logger.log(drus); }
[/vba] P.S. Даже можно было такой укороченный шаблон использовать "«dd» MMMM y 'y'", причём символ в экранирующих кавычках 'y' корректно распознается "переводчиком" как "г.". И, оказывается, можно совсем не заморачиваться на букву "г." - в русском "проговоре" она предусмотрена автоматически, а шаблон можно сделать совсем коротким: '«dd» MMMM y'.Автор - Gustav Дата добавления - 27.11.2023 в 16:17