Skip to content

Instantly share code, notes, and snippets.

@erikyuzwa
Last active June 26, 2022 02:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erikyuzwa/66e993a5784a217d092c07e99594b96b to your computer and use it in GitHub Desktop.
Save erikyuzwa/66e993a5784a217d092c07e99594b96b to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# 1 pound = 0.453 kg
def pounds_to_kg(pounds = 0.00)
if (pounds < 1.0)
0.00
else
(pounds / 2.205).round(2)
end
end
# weight given in kg
# return lean body mass and fat mass
def lbm_and_fat_mass(bodyfat, bodyweight)
fm = (bodyfat / 100.00) * bodyweight
lbm = bodyweight - fm
[lbm, fm]
end
# calculating your bmr - basal metabolic rate
def bmr_muller_method(gender, lbm, fm, age)
part1 = 13.587 * lbm
part2 = 9.613 * fm
part3 = 198
if gender == "f"
part3 = 0
end
part4 = 3.351 * age
part1 + part2 + part3 - part4 + 674.0
end
# male or female (m or f)
gender = "m"
# age
age = 0
# weight in pounds
weight = 0.0
# bodyfat in percentage amount eg. 23.4
bodyfat = 0.0
# 1.2 baseline
# 1.375 light
# 1.55 moderate
# 1.725 heavy
# 1.9 extreme
activity_multiplier = 1.2
puts "Welcome to the Keto Macro Calculator"
puts "(Using the Muller Method)"
puts ""
print "Enter gender (m/f): "
gender = gets.chomp
print "Enter age: "
age = gets.chomp.to_i
print "Enter weight (lbs.): "
weight = gets.chomp.to_i
print "Enter bodyfat (%): "
bodyfat = gets.chomp.to_i
print "Enter activity multiplier (1.2/1.375/1.55/1.75/1.99): "
activity_multiplier = gets.chomp.to_i
weight_kg = 0.0
bodyfat_kg = 0.0
lbm_kg = 0.0
fat_mass_kg = 0.0
bmr = 0.0
tdee = 0.0
weight_kg = pounds_to_kg(weight)
puts "Bodyweight (in kg.): #{weight_kg}"
lbm_kg, fat_mass_kg = lbm_and_fat_mass(bodyfat, weight_kg)
puts "LBM (in kg.): #{lbm_kg}"
puts "Fat Mass (in kg.): #{fat_mass_kg}"
bmr = bmr_muller_method(gender, lbm_kg, fat_mass_kg, age)
puts "BMR: #{bmr}"
tdee = bmr * activity_multiplier
puts "Current Total Daily Energy Expenditure (TDEE): #{tdee}"
puts ""
puts ""
puts "Target TDEE values"
puts "=================="
puts ""
# now display a list of surplus and reductions
# +15, +10, +5, 0, -5, -10, -15
range = [15, 10, 5, 0, -5, -10, -15]
range.each do |n|
stage = "Maintenance Phase"
if n < 0
result = tdee - ((n.abs / 100.0) * tdee)
stage = "Cutting Phase"
elsif n > 0
result = tdee + ((n.abs / 100.0) * tdee)
stage = "Gain Phase"
else
result = tdee
end
puts "Target TDEE (#{n}%)"
puts "Type: #{stage}"
puts "#{result.round(3)} calories per day"
puts "fat (80%): #{(result * 0.80).round(2)} cals or #{((result * 0.80) / 9.0).round(2)} grams"
puts "protein (18%): #{(result * 0.18).round(2)} cals or #{((result * 0.18) / 4.0).round(2)} grams"
puts "carbs (2%): #{(result * 0.02).round(2)} cals or #{((result * 0.02) / 4.0).round(2)} grams"
puts ""
end
puts ""
puts ""
@erikyuzwa
Copy link
Author

erikyuzwa commented Jun 26, 2022

Welcome to the Keto Macro Calculator
(Using the Muller Method)

Enter gender (m/f): m
Enter age: 47
Enter weight (lbs.): 228
Enter bodyfat (%): 24
Enter activity multiplier (1.2/1.375/1.55/1.75/1.99): 1.55
Bodyweight (in kg.): 103.4
LBM (in kg.): 78.584
Fat Mass (in kg.): 24.816
BMR: 2020.780016
Current Total Daily Energy Expenditure (TDEE): 2020.780016


Target TDEE values
==================

Target TDEE (15%)
Type: Gain Phase
2323.897 calories per day
fat (80%): 1859.12 cals or 206.57 grams
protein (18%): 418.3 cals or 104.58 grams
carbs (2%): 46.48 cals or 11.62 grams

Target TDEE (10%)
Type: Gain Phase
2222.858 calories per day
fat (80%): 1778.29 cals or 197.59 grams
protein (18%): 400.11 cals or 100.03 grams
carbs (2%): 44.46 cals or 11.11 grams

Target TDEE (5%)
Type: Gain Phase
2121.819 calories per day
fat (80%): 1697.46 cals or 188.61 grams
protein (18%): 381.93 cals or 95.48 grams
carbs (2%): 42.44 cals or 10.61 grams

Target TDEE (0%)
Type: Maintenance Phase
2020.78 calories per day
fat (80%): 1616.62 cals or 179.62 grams
protein (18%): 363.74 cals or 90.94 grams
carbs (2%): 40.42 cals or 10.1 grams

Target TDEE (-5%)
Type: Cutting Phase
1919.741 calories per day
fat (80%): 1535.79 cals or 170.64 grams
protein (18%): 345.55 cals or 86.39 grams
carbs (2%): 38.39 cals or 9.6 grams

Target TDEE (-10%)
Type: Cutting Phase
1818.702 calories per day
fat (80%): 1454.96 cals or 161.66 grams
protein (18%): 327.37 cals or 81.84 grams
carbs (2%): 36.37 cals or 9.09 grams

Target TDEE (-15%)
Type: Cutting Phase
1717.663 calories per day
fat (80%): 1374.13 cals or 152.68 grams
protein (18%): 309.18 cals or 77.29 grams
carbs (2%): 34.35 cals or 8.59 grams

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment