Calcolatore di Vitamina D
Stima il fabbisogno giornaliero di Vitamina D in base a età e stile di vita.
Domande Frequenti
Implementazione del Codice
def vitamin_d_dose(weight_kg, serum_level_ng_ml=None, sun_exposure='low',
skin_tone='medium', age=30):
"""
Estimate daily vitamin D3 supplementation in IU.
Parameters:
weight_kg - body weight in kilograms
serum_level_ng_ml- current 25(OH)D level (None if unknown)
sun_exposure - 'low' | 'moderate' | 'high'
skin_tone - 'light' | 'medium' | 'dark'
age - age in years (>70 needs more)
Returns recommended daily dose in IU.
"""
# Base dose: ~40 IU/kg for maintenance
base_iu = weight_kg * 40
# Adjust for known deficiency
if serum_level_ng_ml is not None:
if serum_level_ng_ml < 12: # severe deficiency
base_iu = weight_kg * 100
elif serum_level_ng_ml < 20: # moderate deficiency
base_iu = weight_kg * 70
elif serum_level_ng_ml >= 30: # sufficient — lower dose
base_iu = weight_kg * 25
# Sun exposure reduces need
sun_adj = {'low': 0, 'moderate': -400, 'high': -800}
base_iu += sun_adj.get(sun_exposure, 0)
# Darker skin produces less D3 from sunlight
skin_adj = {'light': 0, 'medium': 200, 'dark': 400}
base_iu += skin_adj.get(skin_tone, 0)
# Older adults absorb less efficiently
if age > 70:
base_iu += 400
# Clamp to safe range 400–4000 IU/day
return max(400, min(4000, round(base_iu / 100) * 100))
# Examples
print(vitamin_d_dose(70)) # 70 kg, unknown level
print(vitamin_d_dose(90, serum_level_ng_ml=15, # 90 kg, deficient
sun_exposure='low', skin_tone='dark', age=65))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.