I'm trying to implement a 15/7/8 Minute Rule.

Personally I think my code sucks for this, but I'm doing the best that I can at the moment, which is why I'm here asking for help:

Code:
Public Function RoundMe1(dte As Date) As Double


    Dim mins As Integer
    Dim hours As Integer
    
    hours = Hour(dte)
    mins = Minute(dte)
    
    'If mins >= 53 And mins <= 0 Then ' 7:53 to 8:07
        ' Round up
    '    RoundMe1 = RoundFromZero(dte, #12:15:00 AM#)
    'ElseIf mins >= 1 And mins <= 7 Then ' 7:53 to 8:07
    
        ' Round down
    '    RoundMe1 = TimeSerial(hours, (mins \ 15) * 15, 0)
    
    If mins >= 8 And mins <= 15 Then ' 8:08 to 8:22
        ' Round up
        RoundMe1 = RoundFromZero(CDbl(dte), #12:15:00 AM#)
        
    ElseIf mins >= 16 And mins <= 22 Then ' 8:08 to 8:22
    
        ' Round down
        RoundMe1 = TimeSerial(hours, (mins \ 15) * 15, 0)
    ElseIf mins >= 23 And mins <= 31 Then ' 8:23 to 8:37
    
        ' Round up
        RoundMe1 = RoundFromZero(CDbl(dte), #12:15:00 AM#)
        
    ElseIf mins >= 32 And mins <= 37 Then ' 8:32 to 8:37
        
        ' Round down
        RoundMe1 = TimeSerial(hours, (mins \ 15) * 15, 0)
    ElseIf mins >= 38 And mins <= 45 Then ' 8:38 to 8:52
    
        ' Round up
        RoundMe1 = RoundFromZero(CDbl(dte), #12:15:00 AM#)
    ElseIf mins >= 46 And mins <= 52 Then ' 8:53 to 8:52
    
        ' Round down
        RoundMe1 = TimeSerial(hours, (mins \ 15) * 15, 0)
    End If


End Function
I have two functions, for rounding the times up/down to the nearest 15 minutes. Now that those appear to work correctly (and I use this term loosely, considering one returns a time and the other returns a time and a date...but the correct rounded time and date), now I'm trying to determine when to round down and when to round up.

My code above takes into account when to round up and when to round down based on the information in the 15/7/8 minute rule article, but I am still at a loss as to what to do when faced with a day changing. I also realize that my code sucks because it uses many if statements instead of relying on some sort of math. So please, send me all the criticism you have, I'd really like to learn how this works.