It looks like your issue might be caused by how Now.Month is handling transitions between months, especially if it’s the last day of the month. Try this approach to ensure that the 20th always exists:
New DateTime(Now.Year, Now.Month, Math.Min(20, DateTime.DaysInMonth(Now.Year, Now.Month)))
This ensures that if the 20th exists, it’s used; otherwise, it picks the last valid day of the month. Also, for formatting, you can use: