Menu

Tree [acfd0d] master /
 History

HTTPS access


File Date Author Commit
 HELP 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 LICENSE 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 Makefile 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 README.md 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 clock_pg3.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 clock_pg5.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 clock_pg7.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 clock_sr.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 clock_up.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 common.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 common.h 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 complex_modules_clock.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 module_00.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 module_01.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 module_02.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 module_03.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 module_05.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 module_07.c 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 pseudographic_font_3.h 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 pseudographic_font_5.h 2025-05-07 Grannik Grannik [5c66a7] Initial commit
 pseudographic_font_7.h 2025-05-07 Grannik Grannik [5c66a7] Initial commit

Read Me

CMC (Complex Modules Clock)

Complex Modules Clock (Комплекс модулей часов) — это консольное приложение на языке C, которое предоставляет несколько способов отображения текущего времени и даты в терминале. Проект поддерживает статический вывод, динамически обновляемый текстовый таймер и псевдографические часы с различными шрифтами (3x3, 5x5, 8x8). Приложение модульное, что позволяет легко расширять его функциональность.

Возможности

  • Статический вывод текущей даты и времени в формате ГГГГ/ВремяГода/Месяц | День/ДеньНедели | ЧЧ:ММ:СС.
  • Динамически обновляемый текстовый таймер, показывающий время с частотой раз в секунду.
  • Псевдографические часы с тремя шрифтами:
  • 3x3 (аргумент m3)
  • 5x5 (аргумент m5)
  • 8x8 (аргумент m7)
  • Обработка SIGINT (Ctrl+C) для корректного завершения.
  • Модульная архитектура для упрощения добавления новых функций.
  • Поддержка ANSI-кодов для цветного и форматированного вывода.

Установка

Для сборки и запуска проекта требуется компилятор GCC и утилита make, доступные на большинстве Unix-подобных систем (Linux, macOS). На Windows можно использовать WSL или MinGW.

  1. Клонируйте репозиторий (если проект размещён на GitHub):
    bash git clone <URL_репозитория> cd complex-modules-clock

  2. Соберите проект с помощью Makefile:
    bash make

Это создаст исполняемый файл complex_modules_clock.

  1. Проверьте зависимости:
  2. Требуется стандартная библиотека C и заголовочные файлы (stdio.h, time.h, unistd.h, signal.h, stdlib.h).
  3. Никаких внешних библиотек не требуется.

Использование

Запустите программу с одним из поддерживаемых аргументов:

./complex_modules_clock <аргумент>

Доступные аргументы

Look at the HELP

Examples

  • Показать справку:
    bash ./complex_modules_clock mh

  • Вывести текущую дату и время:
    bash ./complex_modules_clock ms
    Пример вывода:
    2025/Winter/January | 7/Tuesday | 13:21:45

  • Запустить псевдографические часы (5x5):
    bash ./complex_modules_clock m5

Примечание: Для корректного отображения псевдографики используйте терминал с поддержкой UTF-8 (например, большинство современных терминалов Linux/macOS).

Внимание: Нажмите Ctrl+C, чтобы завершить выполнение программы. Курсор будет восстановлен, а экран очищен.

Структура проекта

  • complex_modules_clock.c: Основной файл, который обрабатывает аргументы и вызывает модули.
  • module_*.c: Модули, реализующие различные режимы работы:
  • module_00.c: Справочное сообщение (mh).
  • module_01.c: Статический вывод времени (ms).
  • module_02.c: Динамический текстовый таймер (mu).
  • module_03.c: Псевдографические часы 3x3 (m3).
  • module_05.c: Псевдографические часы 5x5 (m5).
  • module_07.c: Псевдографические часы 8x8 (m7).
  • common.c, common.h: Функции для получения времени года, месяца и дня недели.
  • pseudographic_font_*.h: Определения псевдографических шрифтов (3x3, 5x5, 8x8).
  • clock_*.c: Отдельные реализации часов (возможно, прототипы).
  • Makefile: Скрипт для сборки проекта.

Дополнительные детали проекта

  • Каждому модулю соответствует аналог и отдельно компелируемая программа.
    | Модуль | Аналог |
    |---------------|----------|
    | module_00.c | HELP |
    | module_01.c | clock_sr.c |
    | module_02.c | clock_up.c |
    | module_03.c | clock_pg3.c |
    | module_05.c | clock_pg5.c |
    | module_07.c | clock_pg7.c |

Total number of lines in the project:

1020

License

Этот проект распространяется под лицензией MIT.
См. файл LICENSE для подробностей.
(если файл отсутствует, уточните у автора проекта).

Примечание: Если вы используете эту программу в своем проекте, буду благодарен, если укажите авторство.

Author

  • Grannik

Contacts:

Repositories:

Создано с ❤️ для любителей консольных приложений.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.