Formula Help Creating a Dynamic Field

I am having some trouble using formulas.

I want to calculate a value based on two other values for example

I have a priority field that is a label with Highest, High, Medium, Low, and Lowest
and a target date field which is the date on which I want a task to be done.

I am trying to create a switch which if
The priority field is Highest but it is in the current month then it calculated the priority to be Highest
The priority field is Highest but the target date is the month then it calculated the priority to be High
The priority field is Highest but the target date is 2 months away then it calculated the priority to be Medium
etc
etc

I basically want the Formula to be dynamic depending on the Priority Lable and the Target Date. Is this possible in Infinity?