For the years 1583 to 9999, calculate Ash Wednesday. Obviously, you need first to calculate the date of Easter Sunday, for which you can use any algorithm by the following men: Knuth, Oudin, Butcher, Zeller, or Gauss.
I suggest using Knuth's algorithm although it's a bit longer than the others, because it's clearer. It also has a minor bug beginning and after the year 9906, which he explains in the text following the code. I implemented the explanation and the entire algorithm then works 100%.