使用 Daily Habit Counter 之後,結果看起來不對,幾乎總是能從工具如何記錄天數來解釋,而不是程式錯誤——按一次 Undo one 並檢視本地日曆的連續天數,就能解決絕大多數的誤計。Daily Habit Counter 是一款功能專注的小型瀏覽器工具:它為單一選定習慣標籤的每個本地日曆日儲存一個數字,然後從連續的日子中計算出連續天數。因為有三個概念默默地綁在一起——當天的計數、該日是否出現在歷史紀錄中,以及日與日之間的連續天數——一個微小的輸入也可能看起來像嚴重得多的問題。數字差一個就是真正的誤計。連續天數因為某一天為空而歸零,是工具在執行它被設計來做的事。歷史紀錄中的一列因為計數歸零而消失,是同一條規則從另一個角度呈現。無論哪種情況,回到正確紀錄的最快路徑都一樣:確認標籤,如果今日的數字錯誤就使用 Undo one,然後在匯出前逐列讀取本地日曆的連續天數與 Daily 歷史紀錄。如果一切都符合你記得做過的內容,紀錄就是正確的,只是預期有落差而已。

how do i fix a result that looks wrong after i use daily habit counter
修正 Daily Habit Counter 中看起來錯誤的結果

Daily Habit Counter 結果看起來錯誤的三個原因

大多數「錯誤」的結果都屬於以下三種模式之一:今天的計數有誤、streak 意外中斷,或是歷史紀錄中缺少特定一天。下方表格將每個可見的症狀對應到常見原因以及第一個可以嘗試的修正方式。

你看到的現象最常見的原因第一個可嘗試的修正方式
今天的計數多了一或少了一不慎多按了一次 Add one,或當天某個時點漏點了一次按 Undo one 直到計數符合,然後依當天剩餘需求再按 Add one
streak 歸零,即使有實際行動紀錄整個本地日曆日都沒有任何行動,導致連續紀錄中斷回頭檢視 Daily 歷史紀錄,確認每個可見的日子至少都有一個行動
歷史紀錄中缺少一天當天的計數因為重複操作 Undo 而回到零,因此該列被移除重新檢查該日;如果是有意留空,再按一次 Add one 以恢復該列
總計或 streak 看起來和昨天不一樣本地日期已跨日,或裝置時鐘跨過了月份或年份的分界確認裝置日期並重新讀取本地日曆的 streak 檢視畫面

這四種模式涵蓋了大多數的情況。如果在依循對應的列處理完之後結果看起來仍然不對,下面的章節將說明讓工具如此運作的規則,以及把今日的紀錄與 streak 恢復到你預期狀態的步驟。

修正今日的數字並恢復 streak

這是標準的修正流程。依序執行步驟,並在每次調整後重新檢查 streak。

  1. 挑選符合你動作的預設習慣標籤——Drink water、Walk、Read、Meditate、Study、Coffee、Vaping 或 Smoking——或自行輸入簡短、中性的標籤,例如「Read」或「Practice」。標籤只是整理你的檢視畫面,並不會改變計數。
  2. 每次動作發生時按 Add one。每點一次會將今日紀錄加一,同時在 Daily 歷史紀錄中為今日的那一列記下一筆。
  3. 如果不小心按錯按鈕,請按 Undo one。每按一次 Undo 就將今日紀錄減一。如果計數回到零,該本地日期會從紀錄中整列移除,而且空的一天絕不會以活動的形式出現。
  4. 讀取本地日曆的 streak。streak 日是指任何至少有一筆已儲存動作的本地日曆日,而連續的 streak 日才會延伸 streak 長度。
  5. 從上到下逐列掃描 Daily 歷史紀錄中帶日期的列。任何沒有儲存動作的日子都不會出現,而這個缺席就是從一個有紀錄的日子延伸到下一個時中斷 streak 的原因。
  6. 只有在數字與 streak 都符合你記得的狀態時,才匯出 PNG 或 CSV。PNG 包含 Lizely 標誌、總計以及最近的本地日列;CSV 為每個本地日輸出一列,欄位包含 Date、Actions,以及截至該日為止的 streak。

完成第六步之後,如果 streak 仍然低於你的預期,下一節會說明為什麼基於日期(而非總計)的 streak,即使在計數本身看起來很充足時,長度仍可能出奇地短。

為什麼 streak 會在你有許多動作時仍然歸零

streak 是依據日期來計算,而不是依據任何數字的大小。確切的規則是:streak 日是指任何至少有一筆已儲存動作的本地日曆日,而連續的 streak 日才會延伸 streak 長度。單一天數很高的數字並不會為你換來 streak 日,而完全錯過一天則會讓連續紀錄重來。

計算範例:如果你在週一紀錄 5 個動作、週三紀錄 3 個、週三完全沒有任何動作(0 個),然後週四紀錄 2 個,週四顯示的 streak 是 1,而不是 3 或 4。週三的零不是一個已儲存的日子,而這個缺席的日子就是中斷連續紀錄的原因。四個日曆日合計 10 個動作——5 加 3 加 0 加 2——並不會延伸 streak;只有連續且至少有一個動作的日子才會。

這也解釋了為什麼 streak 看似會重來,即使你清楚記得做過該動作。如果你做動作的時間已經超過裝置時鐘的午夜,日期可能已經更動,該動作就歸屬於新的一天。如果你做動作的當天完全忘了按 Add one,該天就維持空白,連續紀錄會在下一次排程變更時中斷。

當本地日期才是真正的原因

Daily Habit Counter 中的每一筆紀錄都是依據裝置回報的本地日曆日期來儲存。這個單一規則會衍生出三種行為。

第一,深夜執行的動作會留在當地的那個晚上,而不是被 UTC 時間戳位移。如果你晚上 11:50 散步,而裝置顯示的是同一個日期,該動作就會落在那一天。沒有任何隱藏的 UTC 轉換會悄悄把數字搬到不同的列。

第二,streak 的計算遵循本地日曆,包含月份與閏年的分界。從 1 月 31 日跨到 2 月 1 日,跟從 14 日跨到 15 日的處理方式相同:如果 2 月 1 日至少有 1 個動作,而 1 月 31 日至少有 1 個動作,streak 會跨越這個分界延伸。在閏年中,2 月 29 日只是一般的日子,計算方式並無二致。

第三,裝置時鐘是唯一的事實來源。如果你變更時區、跨越換日線旅行,或是手動設定裝置時鐘,工具看到的本地日期可能與你認為的日期不同。有疑慮時,請查看裝置本身的日期顯示,並以此作為頁面應該顯示內容的參考依據。

在匯出前讀取本地日曆的 streak 與 Daily 歷史紀錄

匯出是為了保存,不是為了修正。PNG 與 CSV 檔案只是複製頁面上已經顯示的內容,因此在修正前匯出,只會把錯誤的數字以另一種格式鎖定下來。正確的匯出時機,是頁面已經符合你的記憶內容時。

PNG 會產生一張 1080 乘 1350 的圖片,包含 Lizely 標誌、總計以及最近的本地日列。圖片中沒有網址,也不包含你自訂的習慣標籤,這能降低分享截圖時意外洩漏私人標籤的風險。CSV 會產生一份適合試算表的檔案,包含三個欄位:Date、Actions,以及截至該日為止的 streak。它為每個有儲存計數的本地日輸出一列,因此空白的日子在試算表中同樣不會顯示。兩種檔案都直接在瀏覽器中使用原生 canvas 與 Blob API 產生;不會將任何紀錄傳送到轉檔服務。

如果頁面已經符合你的預期,而匯出結果看起來仍然不同,差異幾乎可以確定是來自匯出的範圍:CSV 中只會出現有儲存計數的日子,PNG 中只會出現最近的日子。這份檢查 Daily Habit Counter 結果的指南會逐列說明同樣的檢查流程。

當紀錄正確而預期有落差時

少數「錯誤」的結果並不是紀錄上的錯誤,而是由計算方式不同的工具所塑造出來的預期。預設標籤包含像 Drink water、Walk、Read、Meditate、Study、Coffee 這類中性捷徑,也包含與吸菸或電子煙相關的純紀錄用標籤。吸菸與電子煙標籤是純紀錄選項,並非健康聲明、戒斷計畫,或對該習慣的評價。頁面不會提供健康建議、戒斷建議、劑量建議或對結果的聲明。自訂標籤可用於閱讀時段、家事任務、練習例行工作或其他私人的重複動作,上述規則同樣適用。

如果你想在判斷目前的紀錄是否符合你需求之前,先比較以日期為基礎的 streak 與以計數為基礎的分數,Daily Habit Counter 頁面會將兩個數字並列顯示,而 習慣追蹤 vs streak 比較則會以淺白的方式說明各自衡量的內容。

紀錄本身僅存於本裝置的瀏覽器中。沒有登入、上傳、雲端備份或同步服務。頁面不使用相機、麥克風、位置訊號、帳號或背景追蹤。清除本網站的瀏覽器資料會一併移除已儲存的紀錄,而另一個瀏覽器或裝置則會以獨立的空白歷史紀錄開始。如果本地的瀏覽器儲存空間被停用或已滿,頁面仍可顯示你剛才變更的動作,並說明它無法保留該內容。這個界線是有意為之:本地的習慣筆記絕不應該被呈現為已在其他地方安全備份的狀態。