Filter to delay jobs

I would like to implement a filter that can delay processing of a job based on some custom logic.

As a trivial example, how could I, using a filter, delay processing of a job if it is about to process on a Sunday?

In pseudo-code:

public class MyFilter
{
   public void BeforeProcessing()
    {
       if( ItIsSunday() ) {
            delayJob();
       }
    }
}

I feel like the simplist solution would be to calculate the delay before you plug the job into the queue I.e.
delay = x days
if in x days its sunday delay = x+1
backgroundjob(function, delay)

NB: I haven’t looked into any more filtering, other than say putting it back on the queue if the day is wrong, but that would be messy and rife for issues.