年度進度是本年度當地民用曆年已經過的百分比,計算方式是將自當地 1 月 1 日午夜以來經過的毫秒數,除以至翌年當地 1 月 1 日午夜為止的完整時間間隔,再乘以一百。顯示器上的其他每個圖層都由同一時間點驅動:使用相同未四捨五入比例填滿的進度條、以固定的 24 小時常數將經過毫秒數相除而得的已過完整日數,以及一律向上取整的剩餘日數。百分比、進度條與日數之間的差異永遠不會超過四捨五入造成的誤差,因為它們全都從同一裝置上的同一個經限制處理的時間戳開始。此指標會讀取裝置時鐘,並透過瀏覽器對作業系統時區規則的解讀進行解析,因此你旅行時會隨所在地時區變化,調整時鐘時會隨時鐘變化,若裝置時鐘產生偏移,它也可能隨之偏移。它不依賴網路時間伺服器、外部 API 或儲存在伺服器上的記錄。年度進度值依其定義就是透明的本機時間讀數,不多也不少;本文其餘內容將說明這個公式、各個圖層、日數的細微差異,以及此讀數適合與不適合用於哪些用途。

year progress meaning
年度進度的意義:百分比背後的公式

年度進度的定義

年度進度是單一比例:表示本年度當地民用曆年已經過了多少,並以百分比呈現。它並不是用來衡量生產力、專案狀態,或任何個人、財務或業務目標應完成到什麼程度。這個數字描述的是時間間隔,而非效能評分。

此指標會在裝置本機計算。它會讀取裝置目前的 Date 值,並採用瀏覽器對作業系統時區規則的解讀。它不會連線到任何網路時間伺服器、原子時鐘或外部 API。單憑這項事實就能解釋這個數字幾乎所有的特性:它會依循時鐘、依循時區,在使用者旅行時改變,若時鐘偏移,它也可能偏移。頁面本身會在 年度進度追蹤器中透明呈現計算過程,並以同一個經限制處理的時間戳顯示年份、百分比、進度條、已過日數與剩餘日數。

年度進度值也可作為中性參考。規劃者可以將它放在專案檢查清單旁,比較已過時間與已完成的工作;日誌寫作者可以將它用作每日提示;儀表板也可以將它顯示為節奏進度條。這些用途都不是必要的,而且沒有一種用途會假定個人目標與行事曆以相同速度推進。

百分比背後的公式

年度進度顯示器上的每個值,都來自一組依序排列的邊界與一個時間戳。

  • 起始邊界:當地本年度 1 月 1 日的午夜。
  • 結束邊界:當地翌年 1 月 1 日的午夜。
  • 已過時間:目前時間減去起始時間,並限制為至少零、最多等於完整時間間隔。
  • 百分比:(已過時間 ÷ 總時間)× 100,顯示至小數點後六位。
  • 進度條:使用相同的未四捨五入值填滿,因此即使標籤只會在小數點後第六位才變動,進度條仍能平順移動。
  • 已過完整日數:floor(已過時間 ÷ 86,400,000)。
  • 剩餘日數:ceil(剩餘時間 ÷ 86,400,000)。

86,400,000 是 24 小時所包含的毫秒數,也就是固定常數。日光節約時間的變化不會改變這個常數,但會改變一個當地曆日實際上是否包含這麼多毫秒;這會影響日數計算,卻不會影響百分比。

若要查看公式的實際運作方式,可以取一個 365 天的年度,其中自當地 1 月 1 日午夜以來恰好經過 73 個完整日。完整時間間隔為 365 × 86,400,000 = 31,536,000,000 毫秒,而 73 × 86,400,000 = 6,307,200,000 毫秒已經過去。將兩者相除再乘以一百:6,307,200,000 ÷ 31,536,000,000 × 100 = 20.000000%。在該時間點,小數點後六位的標籤會顯示 20.000000%,進度條恰好填滿五分之一,已過日數計數器則會顯示 73。

圖層顯示內容計算方式相同來源值
年份邊界所屬的民用曆年讀取自裝置的 Date 值—
百分比已過時間占完整年度的比例已過時間 ÷ 總時間 × 100,小數點後六位是
進度條相同比例的視覺填滿程度未四捨五入的已過時間 ÷ 總時間是
已過日數已經過的完整 24 小時期間floor(已過時間 ÷ 86,400,000)是
剩餘日數剩餘的完整 24 小時期間,絕不會向下取整為零ceil(剩餘時間 ÷ 86,400,000)是
更新時 tick最新計算結果每分鐘以新的 Date 重新計算是

顯示的五個數量共用同一個經限制處理的時間戳,因此彼此的差異永遠不會超過四捨五入造成的誤差。進度條與標籤可能會暫時相差一個小數位,因為標籤會四捨五入,而進度條不會。

如何閱讀百分比、進度條與日數

此顯示器的設計,是為了讓你能同時閱讀全部四個數字並得到相同結論。請將每個數字視為觀察同一時間點的不同透鏡。

  1. 開啟頁面,確認顯示的年份與裝置預期的當地日期及時區設定相符。
  2. 一起閱讀小數點後六位的百分比、進度條、已過的完整 24 小時期間,以及剩餘期間向上取整後的值。
  3. 只將此值用作中性的時間參考;變更裝置時鐘或時區後,請重新整理。

這就是與讀者之間的全部約定。頁面載入後會每分鐘自動更新一次,因此背景中的分頁可能會顯示略舊的值,直到再次成為作用中的分頁;下一次計算一律會使用新的 Date,而不是遞增過時的計數器。

如果顯示的年份與預期不符,原因幾乎總是在頁面之外:裝置時鐘錯誤、時區已變更、裝置處於暫停狀態、虛擬機器、遠端瀏覽器,或遮蔽時間的隱私工具。頁面不會比對官方時間來源、修正偏移,也不會認證法定時間,因此你必須先解決這些設定問題,才能信任顯示內容。

為何日數可能與行事曆日期不同

已過日數與剩餘日數是時間長度的摘要,而不是已跨過的行事曆日期標籤數量。頁面會以固定的 24 小時常數將經過的毫秒數相除來計算它們,因此實際長度為 23 小時(春季向前調時)或 25 小時(秋季向後調時)的當地曆日,不一定會與手動計算日期標籤的結果一致。

在一年中的大部分時間,以及大多數時區中,這項差異並不會被看出來。23 小時的日比常數短一小時,因此春季的時間長度計數器可能會暫時比行事曆計數器慢一天,秋季則可能暫時快一天。頁面會揭露這項差異,而不是將它隱藏起來,因為誠實的讀數比虛假的精確度更有用。

另一項相關的細微之處是閏年。平台的 Date 建構方式會自動處理 2 月 29 日;邊界仍然是連續兩年的當地 1 月 1 日午夜,因此閏年的完整時間間隔恰好為 366 天,平年則恰好為 365 天。這個小工具不會內嵌年度長度表,而是讓 Date 物件決定時間間隔,這是處理未來閏年最簡潔且無須維護的方式。

若截止日期、計費週期或出勤紀錄需要嚴格按照行事曆日期計算,請從行事曆工具取得,不要使用時間長度計數器。年度進度顯示器上的日數最適合用來迅速掌握已經過多少 24 小時時間,而不是當成已跨過日期的清單。

年度進度適用與不適用的地方

這個百分比在幾種情況下是實用的中性參考:

  • 作為專案計畫旁的節奏指標,並可獨立將專案本身的進度與行事曆比對。
  • 作為一天開始或結束時的日誌提示,且不帶有任何評判。
  • 作為個人首頁上的小型儀表板元素,並透過每分鐘一次的重新整理保持最新。
  • 作為個人日誌中逐年比較的基準線,並每年採用相同的小數點後六位定義。

若某個場所預設「時間等於進度」,這個百分比便不適用:

  • 個人目標:許多目標會在年中開始、受季節影響,或遵循非線性時程。年度值為 30% 並不表示任何目標應完成 30%。
  • 財務目標:收益、儲蓄與支出很少會平均配合行事曆;稅務年度與會計年度會使邊界偏離 1 月 1 日。
  • 健康、健身或習慣計畫:每週與季節節奏主導這些計畫,而非民用曆年。
  • 專案截止日期:里程碑可能無論年度已經過多少,都必須在固定日期到期。

頁面不會對這個數字套用任何效能評判、截止日期建議、動機壓力或預測。此指標是時鐘讀數,而不是教練。若想進一步了解裝置時鐘、時區與日光節約時間轉換如何影響顯示數字,請參閱年度進度準確度:百分比實際測量的內容。

如果某個值看起來不正確,請不要試著在頁面上修正它。請檢查裝置的日期、時間、自動同步與時區設定。這個小工具會信任提供給它的時鐘,而且不會將歷史記錄、目標、日期、位置、時區或進度儲存到伺服器,因此正確的讀數取決於正確的裝置設定。

相關閱讀:鍵盤測試工具的意義:按鍵、鍵碼與故障。