{"id":24537437,"url":"https://github.com/tkura37/workinghourscalculator","last_synced_at":"2026-04-18T00:02:48.434Z","repository":{"id":270129867,"uuid":"909420665","full_name":"tkura37/WorkingHoursCalculator","owner":"tkura37","description":"休憩時間・残業時間計算プログラム","archived":false,"fork":false,"pushed_at":"2025-02-19T15:20:44.000Z","size":72,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-19T15:36:26.546Z","etag":null,"topics":["c","codeql","cpp","github-actions","googletest"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tkura37.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-28T16:47:07.000Z","updated_at":"2025-02-19T14:28:09.000Z","dependencies_parsed_at":"2025-02-03T15:38:45.712Z","dependency_job_id":null,"html_url":"https://github.com/tkura37/WorkingHoursCalculator","commit_stats":null,"previous_names":["tkura37/workinghourscalculator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkura37%2FWorkingHoursCalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkura37%2FWorkingHoursCalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkura37%2FWorkingHoursCalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkura37%2FWorkingHoursCalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkura37","download_url":"https://codeload.github.com/tkura37/WorkingHoursCalculator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243811074,"owners_count":20351649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","codeql","cpp","github-actions","googletest"],"created_at":"2025-01-22T14:12:39.548Z","updated_at":"2026-04-18T00:02:48.398Z","avatar_url":"https://github.com/tkura37.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CodeQL CI](https://github.com/tkura37/WorkingHoursCalculator/actions/workflows/CodeQL-CI.yml/badge.svg)](https://github.com/tkura37/WorkingHoursCalculator/actions/workflows/CodeQL-CI.yml)\n[![GoogleTest CI](https://github.com/tkura37/WorkingHoursCalculator/actions/workflows/GoogleTest-CI.yml/badge.svg)](https://github.com/tkura37/WorkingHoursCalculator/actions/workflows/GoogleTest-CI.yml)\n![Coverage](https://github.com/tkura37/WorkingHoursCalculator/blob/badges/badge_linecoverage.svg)\n# 休憩時間・残業時間計算プログラム\n## 概要\n- 入力された出勤時間と退勤時間から、休憩時間と残業時間を計算して出力するプログラム\n- 30分=0.5換算で算出したいときに便利\n- フレックス勤務想定(遅刻時間の出力はしない)\n\n## 利用技術\n※メインプログラムのbuildおよび実行はWindows上で、単体テストはWSL上で実施\n- C言語(メインソースコード)\n- GoogleTest(C++)(単体テストコード)\n- Make\n- CMake\n- GitHub Actions(CI)  \n  main branchへのpush時またはPullRequest作成時に以下を自動実行\n  - 静的解析(CodeQL)\n    - READMEに結果をバッジ表示\n  - 単体テスト実行・カバレッジ測定\n    - READMEに結果をバッジ表示\n    - PullRequestにTest Summaryコメント追加\n\n## 使い方\n例）標準勤務時間が`9:00~18:00`、休憩時間が`12:00~13:00`・`18:00~18:15`の場合\n1. 自身の勤務状況に合わせてマクロ定義の値を変更\n   ```C:src/WorkingHoursCalculator.h\n   #define STANDARD_WORK_HOURS     \"8:00\"  // 所定労働時間\n   #define LUNCHBREAK_START_TIME   \"12:00\" // 昼休みの開始時刻\n   #define LUNCHBREAK_END_TIME     \"13:00\" // 昼休みの終了時刻\n   #define STANDARD_END_TIME       \"18:00\" // 定時の退勤時刻\n   #define OVERTIME_START_TIME     \"18:15\" // 残業の開始時刻\n   ```\n2. ビルド(make)\n   ```bash\n   cd WorkingHoursCalculator\n   make\n   ```\n3. 実行  \n   第1引数に出勤時間、第2引数に退勤時間を指定\n   ```bash\n   ./WorkingHoursCalculator 9:00 18:00\n   ```\n4. 結果出力\n   休憩時間と残業時間が出力される(括弧内は30分=0.5換算の値)\n   ```bash\n   休憩時間: 0時間45分 (0.75)\n   残業時間: 0時間00分 (0.00)\n   ```\n\n## フローチャート\n### 昼休み開始時刻までに出勤した場合\n```mermaid\nflowchart TD\n   A[入力: ユーザー入力時刻・ユーザー設定時刻] --\u003e B{昼休み開始時刻までに退勤?}\n   B --\u003e |Yes|C[午前早退\u003cbr\u003e休憩時間：0分\u003cbr\u003e勤務時間：退勤時刻-出勤時刻]\n   B --\u003e |No|D{昼休み開始時刻～昼休み終了時刻までに退勤?}   \n   D --\u003e |Yes|E[午前早退\u003cbr\u003e休憩時間：0分\u003cbr\u003e勤務時間：昼休み開始時刻-出勤時刻]\n   D --\u003e |No|F{昼休み終了時刻～定時までに退勤?}\n   F --\u003e |Yes|G[午後早退or定時退勤\u003cbr\u003e休憩時間：昼のみ\u003cbr\u003e勤務時間：退勤時刻-出勤時刻-休憩時間 昼]\n   F --\u003e |No|H{定時～残業開始時刻までに退勤?}\n   H --\u003e |Yes|I[定時退勤\u003cbr\u003e休憩時間：昼のみ\u003cbr\u003e勤務時間：定時退勤時刻-出勤時刻-休憩時間 昼]\n   H --\u003e |No|J{残業開始時刻以降に退勤\u003cbr\u003e残業\u003cbr\u003e休憩時間：昼+残業\u003cbr\u003e勤務時間：退勤時刻-出勤時刻-休憩時間 昼+残業}\n```\n\n### 昼休み開始時刻～昼休み終了時刻までに出勤した場合(午前休)\n```mermaid\nflowchart TD\n   A[入力: ユーザー入力時刻・ユーザー設定時刻] --\u003e B{昼休み開始時刻～昼休み終了時刻までに退勤?}\n   B --\u003e |Yes|C[勤務無し\u003cbr\u003e休憩時間：0分\u003cbr\u003e勤務時間：0分]\n   B --\u003e |No|D{昼休み終了時刻～定時までに退勤?}   \n   D --\u003e |Yes|E[午後早退or定時退勤\u003cbr\u003e休憩時間：0分\u003cbr\u003e勤務時間：退勤時刻-昼休み終了時刻]\n   D --\u003e |No|F{定時～残業開始時刻までに退勤?}\n   F --\u003e |Yes|G[午前休定時退勤\u003cbr\u003e休憩時間：0分\u003cbr\u003e勤務時間：定時退勤時刻-昼休み終了時刻]\n   F --\u003e |No|H[残業開始時刻以降に退勤]\n   H --\u003e I{勤務時間が所定労働時間以下?}\n   I --\u003e |Yes|J[休憩時間：0分\u003cbr\u003e勤務時間：退勤時刻-出勤時刻-休憩時間 0分]\n   I --\u003e |No|K{休憩時間：昼+残業\u003cbr\u003e勤務時間：退勤時刻-出勤時刻-休憩時間 昼+残業}\n```\n\n### 昼休み終了時刻～定時までに出勤した場合\n```mermaid\nflowchart TD\n   A[入力: ユーザー入力時刻・ユーザー設定時刻] --\u003e B{昼休み終了時刻～定時までに退勤?}\n   B --\u003e |Yes|C[休憩時間：0分\u003cbr\u003e勤務時間：退勤時刻-出勤時刻]\n   B --\u003e |No|D{定時～残業開始時刻までに退勤?}   \n   D --\u003e |Yes|E[休憩時間：0分\u003cbr\u003e勤務時間：定時退勤時刻-出勤時刻]\n   D --\u003e |No|F[残業開始時刻以降に退勤]\n   F --\u003e G{勤務時間が所定労働時間以下?}\n   G --\u003e |Yes|H[休憩時間：0分\u003cbr\u003e勤務時間：退勤時刻-出勤時刻-休憩時間 0分]\n   G --\u003e |No|I{休憩時間：昼+残業\u003cbr\u003e勤務時間：退勤時刻-出勤時刻-休憩時間 昼+残業}\n```\n## 単体テスト実行手順\n```bash\ncd build\ncmake ..\nmake\n./workinghours_calculator_test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkura37%2Fworkinghourscalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkura37%2Fworkinghourscalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkura37%2Fworkinghourscalculator/lists"}