Bone-in ham takes slightly longer to cook than boneless ham, and for a ham between five and seven pounds, you should cook it for around 22 to 25 minutes per pound on medium heat.
For bone-in hams that weigh more than 10 pounds, your cooking time should be about 20 minutes per pound. Comparatively, boneless ham cooks in about 15 to 20 minutes per pound.
Many bone-in hams are cured and pre-cooked before being sold, so you'll just have to bring your cooked ham to an internal temperature of 140 degrees Fahrenheit.
If you buy an uncooked bone-in ham, you should cook it to an internal temperature of 145 degrees or 165 degrees Fahrenheit if it was packaged outside a meat manufacturer.