Files
Evergreen-Health/Evergreen.Health.Application/Health/Policies/BmiFirmnessPolicy.cs
T
2026-10-09 16:46:30 +08:00

23 lines
770 B
C#

namespace Evergreen.Health.Application.Health.Policies;
/// <summary>Demo 起点,可由用户手动修改,不是医学或人体工学判断。</summary>
public static class BmiFirmnessPolicy
{
public static decimal? Calculate(decimal? heightCm, decimal? weightKg)
{
if (heightCm is null or <= 0 || weightKg is null or <= 0) return null;
try
{
var height = heightCm.Value / 100m;
return Math.Round(weightKg.Value / (height * height), 1);
}
catch (ArithmeticException) { return null; }
}
public static string? Firmness(decimal? bmi) => bmi switch
{
< 18.5m => "很软", < 24m => "稍软", < 28m => "稍硬",
< 32m => "很硬", >= 32m => "最硬", _ => null
};
}