๐Ÿ› ๏ธToolsShed

Sunscreen Calculator

Calculate how much sunscreen you need based on body area and reapplication schedule.

64.5

SunscreenCalculator.totalArea (dmยฒ)

12.90 mL

Per Application

2.58 tsp

SunscreenCalculator.perApplicationTsp

64.5 mL

SunscreenCalculator.dailyTotal

SunscreenCalculator.howCalculated

SunscreenCalculator.ruleExplained

SunscreenCalculator.reapplyNote

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ฝ”๋“œ ๊ตฌํ˜„

# Sunscreen amount calculator based on 2mg/cmยฒ rule

BODY_AREAS = {
    "face_neck":    600,   # cmยฒ
    "chest":        900,
    "back":         900,
    "left_arm":     800,
    "right_arm":    800,
    "left_leg":    1450,
    "right_leg":   1450,
    "left_foot":    175,
    "right_foot":   175,
}

RECOMMENDATION_MG_PER_CM2 = 2.0  # WHO / dermatology standard

def calculate_sunscreen(selected_areas: list[str], reapply_every_hours: float = 2,
                         sun_hours: float = 4) -> dict:
    total_area = sum(BODY_AREAS[a] for a in selected_areas if a in BODY_AREAS)
    per_application_mg = total_area * RECOMMENDATION_MG_PER_CM2
    per_application_ml = per_application_mg / 1000  # convert mg to g โ‰ˆ ml

    applications = 1 + int(sun_hours / reapply_every_hours) if reapply_every_hours > 0 else 1
    total_ml = per_application_ml * applications

    return {
        "area_cm2": total_area,
        "per_application_ml": round(per_application_ml, 1),
        "applications": applications,
        "total_ml": round(total_ml, 1),
    }

result = calculate_sunscreen(
    selected_areas=["face_neck", "chest", "left_arm", "right_arm"],
    reapply_every_hours=2,
    sun_hours=6,
)
print(f"Per application: {result['per_application_ml']} ml")
print(f"Applications needed: {result['applications']}")
print(f"Total needed: {result['total_ml']} ml")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.