iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

飲食營養追蹤 + 健康分析 Web 系統系列 第 14

計算單日蛋白質、脂肪、碳水的功能。

  • 分享至 

  • xImage
  •  

目的

新增新功能:計算某使用者在某天攝取的蛋白質、脂肪、碳水

1.主選單
新增功能6。
https://ithelp.ithome.com.tw/upload/images/20251014/20178845kWKfuzQxWh.jpg


2Main
userId跟date寫法跟前面一樣。

dao.calculateDailyNutrition(userId,date):呼叫方法(後面會創)。
https://ithelp.ithome.com.tw/upload/images/20251014/20178845lNtE80nhwm.jpg
https://ithelp.ithome.com.tw/upload/images/20251014/20178845AdUdunkVHK.jpg


3.FoodLodDAO
創新的方法calculateDailyNutrition把userId,date丟入。

SELECT f.name,f.protein,f.fat,f.carb,fl.quantity:
要查food表的name、protein、fat、carb欄位,foodLog表的quantity欄位。(下面的前面有寫過)

double totalProtein = 0:宣告一個變數為double型別,初四始值為0。

boolean hasRecord = false:用來判斷當天是否有飲食記錄,先預設為false還沒找到記錄。

%-10s %-10s %-10s %-10s %-10s%n :會把字串印在10格寬的欄位裡,向左對齊。 %:要放一個變數的值,-:向左對齊(預設向右),10:欄位寬度為10個字元。

hasRecord = true:會進到迴圈內代表至少讀到一筆資料。

double protein = rs.getDouble("protein")qty: 蛋白質總量=一份蛋白質含量份量。(fat、carb同理)

totalProtein += protein:將每筆蛋白質總量累加到整個日期/使用者的總蛋白質。(totalFat、totalCarb同理)

if(!hasRecord):如果沒有讀到資料hasRecord是false, !hasRecord= ! false =true,就執行這段程式碼。

%.2f g%n:這裡的g是普通的字母會印出來。
https://ithelp.ithome.com.tw/upload/images/20251014/20178845XSh0Io3yIp.jpg
https://ithelp.ithome.com.tw/upload/images/20251014/2017884534Wz0wN8mB.jpg


4.結果
https://ithelp.ithome.com.tw/upload/images/20251014/20178845IrSfVN34or.jpg


上一篇
寫計算單日總熱量的方法
下一篇
新增食物名稱跟其資訊
系列文
飲食營養追蹤 + 健康分析 Web 系統16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言