Твик с отображением порядкового номера недели в году
Цитата: 937 от 29.05.2025, 12:48Всем доброго дня!
Не нашел тему на форуме по данному вопросу, поэтому хочу поднять обсуждение о довольно специфичной функции.
Мне по целому ряду причин очень часто нужно знать, какой номер недели на данный момент. Приходится лезть в телефон, или гуглить, или в календаре почтового клиента смотреть.Предлагаю рассмотреть возможность добавить твик, который тем или иным образом будет помещать номер недели либо в стандартный календарь (вызывается по клику на часы в трее), либо отображаться во всплывающем окне при наведении на часы в трее, либо отображаться прям в трее рядом с часами.
На гитхабе я нашел небольшую программу (T-Clock пользователя White-Tiger; T-Clock Redux в поиске), которая позволяет кастомизировать календарь и часы. Но ставить ее только ради того, чтобы смотреть номер недели, мне кажется избыточным.
Что думаете?
Всем доброго дня!
Не нашел тему на форуме по данному вопросу, поэтому хочу поднять обсуждение о довольно специфичной функции.
Мне по целому ряду причин очень часто нужно знать, какой номер недели на данный момент. Приходится лезть в телефон, или гуглить, или в календаре почтового клиента смотреть.
Предлагаю рассмотреть возможность добавить твик, который тем или иным образом будет помещать номер недели либо в стандартный календарь (вызывается по клику на часы в трее), либо отображаться во всплывающем окне при наведении на часы в трее, либо отображаться прям в трее рядом с часами.
На гитхабе я нашел небольшую программу (T-Clock пользователя White-Tiger; T-Clock Redux в поиске), которая позволяет кастомизировать календарь и часы. Но ставить ее только ради того, чтобы смотреть номер недели, мне кажется избыточным.
Что думаете?
Цитата: Андрей от 29.05.2025, 14:12937, Добрый день.
Твик с точки зрения Win 10 Tweaker - это нечто, сделанное средствами самой системы.
Я не думаю, что в системе есть такая функция.
937, Добрый день.
Твик с точки зрения Win 10 Tweaker - это нечто, сделанное средствами самой системы.
Я не думаю, что в системе есть такая функция.
Цитата: 𝐓𝐇𝐎𝐑𝐭𝐢𝐤 от 29.05.2025, 15:51Привет, просто создай скрипт PowerShell с командой:
Get-Date -UFormat %V
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null
Запускай, когда нужно узнать число.
Привет, просто создай скрипт PowerShell с командой:
СкопированоGet-Date -UFormat %V
Скопировано$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null
Запускай, когда нужно узнать число.
Цитата: 937 от 30.05.2025, 10:02Цитата: Андрей от 29.05.2025, 14:12937, Добрый день.
Твик с точки зрения Win 10 Tweaker - это нечто, сделанное средствами самой системы.
Так и есть. Если я не ошибаюсь, вмешиваться в систему с помощью кода на C# - это тоже, условно, "средства системы" (например, эксплуатация системных библиотек).
Есть приложение, называется WindHawk. Оно опенсорсное, весь его исходник лежит прям на сайте разработчика. Я не знаю C#, поэтому мне сложно разобраться в том, как именно реализовано приложение. Но оно довольно сильно позволяет кастомизировать область часов в трее.
Исходя из этого, я предполагаю, что написать твик, который будет помещать номер недели в часы не должно быть сложно или невозможно. Более того, твик, который добавляет день недели уже есть. Понимаю, что техническая реализация второго и первого может быть разной, но принципиально это довольно смежные изменения.
Если тут есть кто-нибудь, понимающий C# - посмотрите код WindHawk (вкладка Source Code прямо на оф.сайте), расскажите как там реализованы кастомизации.
У меня есть предположение, что реализация там через наложение/подмену интерфейса часов. Но, возможно, там изменения встраиваются в сам модуль часов панели задач и меняют её саму изнутри, а не подменяют/накладывают сторонний и визуально похожий интерфейс. Если это так, то, по идее, твик будет вполне возможно сделать.
Цитата: Андрей от 29.05.2025, 14:12937, Добрый день.
Твик с точки зрения Win 10 Tweaker - это нечто, сделанное средствами самой системы.
Так и есть. Если я не ошибаюсь, вмешиваться в систему с помощью кода на C# - это тоже, условно, "средства системы" (например, эксплуатация системных библиотек).
Есть приложение, называется WindHawk. Оно опенсорсное, весь его исходник лежит прям на сайте разработчика. Я не знаю C#, поэтому мне сложно разобраться в том, как именно реализовано приложение. Но оно довольно сильно позволяет кастомизировать область часов в трее.
Исходя из этого, я предполагаю, что написать твик, который будет помещать номер недели в часы не должно быть сложно или невозможно. Более того, твик, который добавляет день недели уже есть. Понимаю, что техническая реализация второго и первого может быть разной, но принципиально это довольно смежные изменения.
Если тут есть кто-нибудь, понимающий C# - посмотрите код WindHawk (вкладка Source Code прямо на оф.сайте), расскажите как там реализованы кастомизации.
У меня есть предположение, что реализация там через наложение/подмену интерфейса часов. Но, возможно, там изменения встраиваются в сам модуль часов панели задач и меняют её саму изнутри, а не подменяют/накладывают сторонний и визуально похожий интерфейс. Если это так, то, по идее, твик будет вполне возможно сделать.
Цитата: 937 от 30.05.2025, 10:26Цитата: 𝐓𝐇𝐎𝐑𝐭𝐢𝐤 от 29.05.2025, 15:51Привет, просто создай скрипт PowerShell с командой:
Get-Date -UFormat %VПривет.
Спасибо, но по поводу
Get-Date -UFormat %Vизвестно, что оно возвращает не номер недели по стандарту ISO 8601 (как то требуется), а некий "номер недели Microsoft". Из-за такой подставы, на этот результат либо нельзя гарантированно опираться, либо нужно изобретать велосипед (workaround), чтобы получить стандартизированный результат. Более подробно об этом здесь.
Цитата: 𝐓𝐇𝐎𝐑𝐭𝐢𝐤 от 29.05.2025, 15:51Привет, просто создай скрипт PowerShell с командой:
СкопированоGet-Date -UFormat %V
Привет.
Спасибо, но по поводу СкопированоGet-Date -UFormat %V известно, что оно возвращает не номер недели по стандарту ISO 8601 (как то требуется), а некий "номер недели Microsoft". Из-за такой подставы, на этот результат либо нельзя гарантированно опираться, либо нужно изобретать велосипед (workaround), чтобы получить стандартизированный результат. Более подробно об этом здесь.
Цитата: 𝐓𝐇𝐎𝐑𝐭𝐢𝐤 от 30.05.2025, 11:02Цитата: 937 от 30.05.2025, 10:26Цитата: 𝐓𝐇𝐎𝐑𝐭𝐢𝐤 от 29.05.2025, 15:51Привет, просто создай скрипт PowerShell с командой:
Get-Date -UFormat %VПривет.
Спасибо, но по поводу
Get-Date -UFormat %Vизвестно, что оно возвращает не номер недели по стандарту ISO 8601 (как то требуется), а некий "номер недели Microsoft". Из-за такой подставы, на этот результат либо нельзя гарантированно опираться, либо нужно изобретать велосипед (workaround), чтобы получить стандартизированный результат. Более подробно об этом здесь.Тогда, согласно этой статье, наиболее точный способ - использовать метод
GetWeekOfYear()из класса[System.Globalization.Calendar]для наилучшей совместимости.
[spoiler title="Финальный код:"]
$calendar = [System.Globalization.CultureInfo]::InvariantCulture.Calendar
$calendar.GetWeekOfYear((Get-Date), [System.Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday)
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null[/spoiler]
Цитата: 937 от 30.05.2025, 10:26Цитата: 𝐓𝐇𝐎𝐑𝐭𝐢𝐤 от 29.05.2025, 15:51Привет, просто создай скрипт PowerShell с командой:
СкопированоGet-Date -UFormat %VПривет.
Спасибо, но по поводу
СкопированоGet-Date -UFormat %Vизвестно, что оно возвращает не номер недели по стандарту ISO 8601 (как то требуется), а некий "номер недели Microsoft". Из-за такой подставы, на этот результат либо нельзя гарантированно опираться, либо нужно изобретать велосипед (workaround), чтобы получить стандартизированный результат. Более подробно об этом здесь.
Тогда, согласно этой статье, наиболее точный способ - использовать метод СкопированоGetWeekOfYear() из класса Скопировано[System.Globalization.Calendar] для наилучшей совместимости.
Скопировано$calendar = [System.Globalization.CultureInfo]::InvariantCulture.CalendarСкопировано$calendar.GetWeekOfYear((Get-Date), [System.Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday)Скопировано$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null