# クリップボード電卓 ClipboardCalc v2.0 - 使い方

---

## ファイル構成

```
ClipboardCalc/
  ClipboardCalc.cpp     メインソース（純粋ASCII）
  ClipboardCalc.rc      日本語文字列リソース（UTF-16 LE BOM）
  resource.h            文字列ID定義
  ClipboardCalc.vcxproj Visual Studioプロジェクトファイル
```

---

## ビルド手順

### 1. プロジェクト作成

1. Visual Studio 2022 を起動
2. 「新しいプロジェクトの作成」→「空のプロジェクト（C++）」を選択
3. プロジェクト名を `ClipboardCalc` にして「作成」

### 2. ファイルの追加

ソリューションエクスプローラーの「ソース ファイル」を右クリック  
→「追加」→「既存の項目」  
→ `ClipboardCalc.cpp`、`ClipboardCalc.rc`、`resource.h` の3ファイルを追加

### 3. プロジェクトのプロパティ設定

プロジェクトを右クリック →「プロパティ」を開く

| 場所 | 設定項目 | 値 |
|---|---|---|
| 全般 | 文字セット | Unicode 文字セットを使用する |
| リンカー → システム | サブシステム | Windows (/SUBSYSTEM:WINDOWS) |

### 4. RCファイルを開く際の注意

ソリューションエクスプローラーで `ClipboardCalc.rc` を右クリック  
→「プログラムから開く」→「**ソース コード (テキスト) エディター**」を選択

> ※ リソースエディターで開くと UTF-16 LE のエンコードが破壊される場合があります。

### 5. ビルドと実行

- `Ctrl+Shift+B` でビルド
- `Ctrl+F5` で実行

---

## 画面レイアウト

タイトルバーには `クリップボード電卓 ClipboardCalc v2.0` と表示されます。

```
┌──────────────────────────────────────────────────────────┐
│ クリップボード電卓 ClipboardCalc v2.0                      │
├──────────────────────────────────────────────────────────┤
│ [自動: ON] クリップボードの数値を自動計算    [自動 OFF]    │
│ クリップボード: 100                                        │
│ 演算子: -                                                 │
│ [+ 加算][- 減算][* 乗算][/ 除算]   ← 演算子ボタン行       │
│ [% パーセント]  割合: [50] %         ← %ボタン＋割合入力   │
│ [= 計算 (クリップボード→計算)                            ] │
│ ┌─────────────────────────────────────────────── 50 ──┐  │
│ └───────────────────────────────────────────────────────┘ │
│ [結果クリア][結果コピー][円マーク(\)切替][税込計算]         │
│ 税率: [10] %                                              │
│ --- 計算履歴 (自由に編集可) ---                            │
│ ┌─────────────────────────────────────────────────────┐  │
│ │ 08:00-10:30                                         │  │
│ │ 08:00-10:00                                         │  │
│ │ 08:00-09:00                                         │  │
│ └─────────────────────────────────────────────────────┘  │
│ [履歴クリア][履歴コピー][履歴から再計算][時間計算]          │
└──────────────────────────────────────────────────────────┘
```

---

## 基本的な使い方

### 自動計算モード（デフォルト: ON）

```
1. アプリを起動する
2. 他のアプリで数値をコピー（Ctrl+C）
   → 自動的に履歴欄に追加され、計算結果が更新される
3. 演算子ボタンで次の計算を切り替える（+ - * /）
4. 数値をコピーするたびに連続計算される
```

**同じ数値を繰り返しコピーした場合：**  
Ctrl+C のたびにシーケンス番号が変わるため、同じ数値でも毎回計算されます。

---

## ボタン一覧

### 演算子ボタン行

| ボタン | 機能 |
|---|---|
| `+ 加算` | 次の計算を加算にする |
| `- 減算` | 次の計算を減算にする |
| `* 乗算` | 次の計算を乗算にする |
| `/ 除算` | 次の計算を除算にする |

---

### ＝ 計算ボタン

自動モードが OFF のとき、クリップボードの数値を手動で読み込んで計算します。

### 自動 ON/OFF ボタン（右上）

| ボタン表示 | 押したあとの状態 |
|---|---|
| `自動 OFF` | 自動モードをOFFにする（手動モードへ） |
| `自動 ON` | 自動モードをONにする |

---

## 計算結果エリア

### 結果エリアのボタン

| ボタン | 機能 |
|---|---|
| `結果クリア` | 計算結果と累計値を 0 にリセット |
| `結果コピー` | 結果をクリップボードにコピー（円マーク付きの場合は `\` も含む） |
| `円マーク(\)切替` | 結果の先頭に `\`（U+005C）を付ける／外す |
| `税込計算` | 現在の結果に税率を加算して税込金額に更新する |

#### 円マークモードの動作

| モード | 表示 | コピーされる内容 |
|---|---|---|
| OFF | `1234` | `1234` |
| ON | `\1234` | `\1234`（U+005C付き） |

---

### % パーセントボタン行

```
[% パーセント]  割合: [50] %
```

**% ボタンの動作：**

```
計算式: 結果 = 現在の累計値  演算子  (累計値 × 割合 ÷ 100)
```

割合入力欄に入力した値を「累計値の何%か」として計算し、  
現在選択中の演算子で累計値に適用します。

#### 具体的な操作例

**例1：100 の 50% を引く（結果: 50）**

```
操作:
  1. 「100」をコピー         → 累計: 100
  2. 「- 減算」ボタンを押す  → 演算子: -
  3. 割合入力欄に「50」と入力
  4. 「% パーセント」ボタンを押す

計算: 100 - (100 × 50 ÷ 100) = 100 - 50 = 50
結果: 50
履歴: - 50% of 100 (=50) = 50
```

**例2：1000 に 20% を加える（結果: 1200）**

```
操作:
  1. 「1000」をコピー        → 累計: 1000
  2. 「+ 加算」ボタンを押す  → 演算子: +
  3. 割合入力欄に「20」と入力
  4. 「% パーセント」ボタンを押す

計算: 1000 + (1000 × 20 ÷ 100) = 1000 + 200 = 1200
結果: 1200
履歴: + 20% of 1000 (=200) = 1200
```

**例3：500 の 30% を求める（掛け算で使用）**

```
操作:
  1. 「500」をコピー         → 累計: 500
  2. 「* 乗算」ボタンを押す  → 演算子: *
  3. 割合入力欄に「30」と入力
  4. 「% パーセント」ボタンを押す

計算: 500 × (500 × 30 ÷ 100) = 500 × 150 = 75000
※ 掛け算では「累計 × パーセント金額」になります
```

> 割合入力欄はデフォルト `50`。小数も入力可能（例: `12.5`）。

---

## 税込計算

### 税率入力欄と税込計算ボタン

```
[税込計算]  税率: [10] %
```

**計算式：**
```
税込金額 = 結果 × (1 + 税率 ÷ 100)  ※端数は四捨五入
```

**例（税率10%）：**
```
結果: 1000 → 税込計算 → 結果: 1100
履歴: (tax +10%) 1000 -> 1100
```

### % ボタンと税込計算の違い

| 機能 | 計算内容 | 典型的な用途 |
|---|---|---|
| `% パーセント` | `累計値  演算子  (累計値 × 割合 ÷ 100)` | 割引・値引き・増減率の計算 |
| `税込計算` | `結果 × (1 + 税率 ÷ 100)` | 税込合計金額を一発で求める |

---

## 時間計算（NEW in v2.0）

### 時間計算ボタン

履歴ボタンの一番右にある「時間計算」ボタンで、計算履歴欄に書かれた  
**時刻の範囲（開始時刻-終了時刻）から経過時間（分）を計算**できます。

### 基本的な書式

```
HH:MM-HH:MM
```

`-`（半角ハイフン）の前後に `時:分` の形式で開始時刻と終了時刻を書きます。

### 使い方

```
操作:
  1. 計算履歴欄に時刻の範囲を入力する
       08:00-10:30
  2. 「時間計算」ボタンを押す

結果:
       08:00-10:30 = 150
       150 分です
```

`08:00` から `10:30` までは2時間30分 = **150分** と計算されます。  
1行だけの場合でも、合計分数を `N 分です` の形式で末尾に追加します。

### 複数行の時間計算（合計も自動表示）

履歴欄に複数の時刻範囲を書いて「時間計算」を押すと、  
各行がそれぞれ計算され、**最後に合計分数も追加表示**されます。

**入力例：**
```
08:00-10:30
08:00-10:00
08:00-09:00
```

**「時間計算」ボタンを押した後：**
```
08:00-10:30 = 150
08:00-10:00 = 120
08:00-09:00 = 60
合計は 330 分です
```

### 24時を超える時刻にも対応

`29:00` のように24時間を超える表記も計算できます  
（深夜勤務やシフト管理などで使う「29:00 = 翌日5:00」のような表記に対応）。

**入力例：**
```
08:00-29:00
```

**結果：**
```
08:00-29:00 = 1260
```

`08:00` から `29:00`（=翌日5:00）までは21時間 = **1260分**

### 時間計算のルール

| 入力 | 認識される範囲 |
|---|---|
| `08:00-10:30` | 半角ハイフンで区切られた時刻範囲 |
| `8:00-9:30` | 時刻は1桁でも2桁でもOK |
| `08:00-29:00` | 終了時刻が24時を超えてもOK（最大時間は制限なし） |
| `09:00 = 60`（再計算前の行） | `=` 以降は無視して再計算される |

- 区切り文字は半角ハイフン `-` のほか、全角ダッシュ（`–` `—`）にも対応
- 時刻として認識されない行（数字だけの行や演算子行など）はそのまま残ります
- 時刻範囲の行が**1行のみ**の場合：末尾に `N 分です` だけが追加されます（「合計は」は付きません）
- 時刻範囲の行が**2行以上**ある場合：末尾に `合計は N 分です` が追加されます

### 計算結果エリアとの関係

時間計算は履歴欄の中だけで処理されます。  
（計算結果エリアの数値や演算子には影響しません）

---

## 計算履歴エリア

### 履歴欄について

- 計算のたびに自動で行が追加されます
- **自由に編集できます**（手書きで数式や時刻範囲を追加・修正できます）
- 「履歴から再計算」ボタンで編集後の内容を再計算できます
- 「時間計算」ボタンで時刻範囲の行を計算できます

### 自動生成される履歴の形式（数値計算）

```
1000
+ 500 = 1500
- 50% of 1500 (=750) = 750
(tax +10%) 750 -> 825
```

### 自動生成される履歴の形式（時間計算）

```
08:00-10:30 = 150
08:00-10:00 = 120
08:00-09:00 = 60
合計は 330 分です
```

### 手書きで入力できる形式（履歴から再計算用）

```
1000
+ 500
- 200
* 2
/ 4
```

- 最初の行: 起点となる数値
- 以降の行: `演算子 数値` または `演算子 数値 = 結果` 形式
- `= 結果` 部分・`(tax ...)` 行・`% (...)` 行・時刻範囲行は数値再計算時にスキップされます

### 履歴エリアのボタン

| ボタン | 機能 |
|---|---|
| `履歴クリア` | 履歴欄と計算結果をすべてリセットする |
| `履歴コピー` | 履歴欄の内容をすべてクリップボードにコピー |
| `履歴から再計算` | 履歴欄の数値テキストを解析して再計算し、結果を更新する |
| `時間計算` | 履歴欄の時刻範囲（HH:MM-HH:MM）を計算し、合計分数も表示する |

---

## クリップボードの数値認識ルール

半角数字（0〜9）のみを抽出して計算します。

| コピーしたテキスト | 認識される値 |
|---|---|
| `1234` | 1234 |
| `1,234` | 1234（カンマは無視） |
| `¥1,234` | 1234（記号は無視） |
| `3.14` | 3.14（小数点は1つまで） |
| `-500` | -500（先頭のマイナスは認識） |
| `金額: 1234円` | 1234（前後の文字は無視） |
| `１２３４`（全角） | 認識失敗（全角数字は対象外） |

---

## バージョン履歴

| バージョン | 変更内容 |
|---|---|
| v1.0 | 初版リリース。自動計算・税込計算・%計算（割合入力欄付き）・履歴編集機能 |
| v2.0 | 時間計算機能を追加（HH:MM-HH:MM形式の時刻範囲から分数を計算、複数行の合計表示、24時超え対応） |

---

## 注意事項

- レジストリは一切使用しません
- 設定・履歴は保存されません（終了するとリセットされます）
- Windows 10 / 11 が必要です
- `\` は U+005C（バックスラッシュ／円記号）です
