Swing Shift Production

so I have a day shift that is from 4AM to 3:30PM which updates production through transaction group at 3:35PM.
Swing shift starts the same day at 4PM and ends the next day at 2:30AM and updates through transaction group at 2:35AM. So question is how to get the swing production that is updated on the next day to show on the actual day the shift started?
Almost zero scripting experience so struggling with this one.

Also using this on a calendar view

I usually avoid transaction groups and opt for a scripted database logging approach myself.

I like to make my own time shared scripting module for functions like this.
Something like:

def getProductionStartingDay(datetime=None):
    if datetime == None:
        datetime = system.date.now()
    hours = system.date.getHours(datetime)
    if hours < 4:
        return system.date.addDays(datetime, -1)
        return datetime

Then you can take the returned datetime and format it to be just the date, or pass it along to a query if the backing table column is of type date and not datetime.