Semi-permanent hair dye, on average, lasts for four to six weeks. Of course, longevity is affected by a few factors, including the type of hair you have, your starting base color, the condition and porosity of your tresses, and your washing schedule. Using a colored conditioner, specially formulated shampoos, avoiding salt and chlorinated water, using heat and UV protection, and limiting your washing will all help your color last longer.