minValue = Math.max(0, minValue - diff);
is equivalent to
minValue -= diff;
if (minValue < 0)
{
   minValue = 0;
}
Obviously in tight loops the performance benefit of not calling a method might override the tidiness of the Math.max() solution.
A third way is
minValue = (minValue - diff > 0) ? (minValue - diff) : 0;
But this is the least readable to me.