2025年12月11日 星期四

【AppSheet教學】利用 Duration 型別打造個人時間管理 APP,輕鬆計算學習與工作時數

今天要跟大家介紹 AppSheet 中一個非常實用的型別——Duration(持續時間)。最近我自己寫了一個管理時間的 AppSheet 應用程式,主要是用來記錄我每一件事情的學習時間或工作時間。

在這個應用中,核心的功能就是利用 Duration 來計算兩個時間點之間的差距。如果你也想做一個時間追蹤工具,這篇教學會對你很有幫助。

為什麼需要這個 APP?

我平常會有許多不同的任務,例如錄製 YouTube 影片、閱讀書籍或是學習程式碼(如 CSS 教學)。我希望能精確記錄每各章節或每個段落花了多少時間。

透過 AppSheet,我可以建立一個專案(Project),並在該專案下新增多筆工作紀錄(Work Items),系統會自動幫我加總該專案的總花費時間。

核心型別介紹:Duration

在 AppSheet 中,Duration 型別是用來表示「時間長度」的。
它的基本運算邏輯就是:

時間長度 = 結束時間 (End Time) - 開始時間 (Start Time)

實作邏輯與欄位設定

1. 資料表結構

我的 APP 主要有兩個部分:

  • 專案列表 (Project): 大標題(例如:AppSheet 教學、閱讀書籍)。

  • 工作列表 (Work): 實際執行的細項。

在工作列表的資料表中,我有幾個關鍵欄位:

  • ProjectID:關聯到專案。

  • StartTime (DateTime):開始時間。

  • EndTime (DateTime):結束時間。

  • NowUsedTime (Duration):目前已用時間(虛擬欄位)。

  • UsedTime (Duration):最終使用時間(虛擬欄位)。

2. 專案選單的優化

在新增工作時,ProjectID 會列出所有專案。為了方便使用,我設定了排序邏輯:

  • Active (啟用狀態): 我在專案設定中加入了一個 Active 欄位 (Y/N)。如果某個專案(例如「台灣摩鐵」)已經結案,我將其設為 N,它就不會再出現在新增選單中。

  • 排序: 最近使用過的專案會排在最上面。

3. 如何計算時間?(關鍵公式)

這裡我使用了兩個 Duration 類型的虛擬欄位 (Virtual Columns) 來處理不同的顯示情境,並搭配 Show? 條件來控制顯示。

情境 A:工作正在進行中 (NowUsedTime)

當我按下開始,但還沒按下結束時,EndTime 是空的。這時我想看「目前已經過了多久」。

  • 欄位名稱: NowUsedTime

  • App Formula: NOW() - [StartTime] (目前時間 減去 開始時間)

  • Show? (顯示條件): ISBLANK([EndTime])

    • 意思就是:當「結束時間」是空白的時候,才顯示這個計時欄位。

情境 B:工作已完成 (UsedTime)

當工作結束,我填入了 EndTime,這時我要計算最終花費時間。

  • 欄位名稱: UsedTime

  • App Formula: [EndTime] - [StartTime]

  • Show? (顯示條件): ISNOTBLANK([EndTime])

    • 意思就是:當「結束時間」有值的時候,才顯示這個最終時間。


實際操作演示

讓我來示範一次實際的使用流程:

  1. 開始任務:
    點擊右下角的「+」號新增工作。選擇專案(例如:YouTube影片錄製),系統會自動帶入目前的 StartTime。此時不要填寫 EndTime,直接按下 Save。

  2. 即時監控:
    回到列表,你可以看到該筆紀錄正在進行中。隨時點進去該筆資料,你會看到 NowUsedTime 正在跳動(例如顯示 0:00:31),告訴你目前已經花了多少時間。

  3. 結束任務:
    當錄影結束,點擊編輯該筆資料,並勾選「事件完成」(這會自動填入 EndTime),然後存檔。

  4. 自動計算與加總:
    存檔後,系統會自動隱藏 NowUsedTime,改為顯示 UsedTime(例如:00:00:50)。
    回到專案的大分類畫面,你會發現 YouTube影片錄製 這個專案的總時數已經自動加上了剛剛那 50 秒。

  5. 刪除或修正:
    如果剛剛那筆是測試用的,直接刪除該筆紀錄,專案的總時數也會即時扣除,變回原本的時數(例如從 1小時2分 變回 1小時1分)。

總結

透過 AppSheet 的 Duration 型別,配合 ISBLANK 等函數控制欄位的顯示與隱藏,我們就能做出一個非常靈活的時間管理工具。

這不僅能記錄開始與結束,還能在任務進行中即時查看已過時間,對於想要精準掌握學習或工作效率的朋友來說,是非常實用的功能。

今天的教學就介紹到這邊,希望能幫助大家更好地運用 AppSheet!


 


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

【AppSheet教學】利用 Duration 型別打造個人時間管理 APP,輕鬆計算學習與工作時數

今天要跟大家介紹 AppSheet 中一個非常實用的型別—— Duration(持續時間) 。最近我自己寫了一個管理時間的 AppSheet 應用程式,主要是用來記錄我每一件事情的學習時間或工作時間。 在這個應用中,核心的功能就是利用  Duration  來計算兩個時間點之間的...