4 strtotime(int) returns false -> Elvis instead of `$i>3` saves 4 bytes
source | link

PHP, 118 98 95 9591 bytes

foreachwhile($argv as$n$n=$argv[++$i])$i++&1$i&1?$p=$n:($t=$i>3?$t+$n*60:$t=($f=strtotime)($n)?:$t+60*$n)<=$f(end($argv))?:print$p;

takes input from command line arguments (you may interprete that as lines separated by spaces if you like); prints names without a delimiter. Run with -r or test it onlinetest it online.

edit 1: saved 20 bytes with direct printing
edit 2: saved 3 bytes by removing the delimiter
edit 3: saved 4 bytes by exploiting that plain integers are no valid dates for strtotime

breakdown

foreachwhile($argv as$n$n=$argv[++$i])       # loop through arguments, skip [0]
    $i++&1$i&1                        # if index is odd   
    ?   $p=$n                   # then assign name to $p
    :   ($t=$i>3$t=                    # else if$t index>2=
        ?($f=strtotime)($n)   $t+$n*60       # if $n is a #valid thentime, addparse minutesit
        ?:$t+60*$n   ($f=strtotime)($n)               # else parseadd time$n minutes to current $t
        )<=$f(end($argv))           # if result$t <= parsed party start
        ?                           # then do nothing
        :print$p;   print"$p\n"         # else print name
    ;# else print name

PHP, 118 98 95 bytes

foreach($argv as$n)$i++&1?$p=$n:($t=$i>3?$t+$n*60:($f=strtotime)($n))<=$f(end($argv))?:print$p;

takes input from command line arguments (you may interprete that as lines separated by spaces if you like); prints names without a delimiter. Run with -r or test it online.

edit 1: saved 20 bytes with direct printing
edit 2: saved 3 bytes by removing the delimiter

breakdown

foreach($argv as$n) # loop through arguments
    $i++&1              # if index is odd   
    ?   $p=$n               # then assign name to $p
    :   ($t=$i>3            # else if index>2
        ?   $t+$n*60            # then add minutes
        :   ($f=strtotime)($n)  # else parse time
        )<=$f(end($argv))       # if result <= parsed party start
        ?                       # then do nothing
        :   print"$p\n"         # else print name
    ;

PHP, 118 98 95 91 bytes

while($n=$argv[++$i])$i&1?$p=$n:($t=($f=strtotime)($n)?:$t+60*$n)<=$f(end($argv))?:print$p;

takes input from command line arguments (you may interprete that as lines separated by spaces if you like); prints names without a delimiter. Run with -r or test it online.

edit 1: saved 20 bytes with direct printing
edit 2: saved 3 bytes by removing the delimiter
edit 3: saved 4 bytes by exploiting that plain integers are no valid dates for strtotime

breakdown

while($n=$argv[++$i])       # loop through arguments, skip [0]
    $i&1                        # if index is odd   
    ?   $p=$n                   # then assign name to $p
    :   ($t=                    # else $t =
        ($f=strtotime)($n)          # if $n is a valid time, parse it
        ?:$t+60*$n                  # else add $n minutes to current $t
        )<=$f(end($argv))           # if $t <= parsed party start
        ?                           # then do nothing
        :print$p;                   # else print name
3 removed delimiter in golfed version (-3 bytes); newline instead of comma in the breakdown; improved description
source | link

PHP, 118 98 9895 bytes

foreach($argv as$n)$i++&1?$p=$n:($t=$i>3?$t+$n*60:($f=strtotime)($n))<=$f(end($argv))?:print"$p,";print$p;

takes input from command line arguments; runarguments (you may interprete that as lines separated by spaces if you like); prints names without a delimiter. Run with -r or test it online.

prints a trailing comma; add 8 bytes to avoid thatedit 1: replace "$p,"saved 20 bytes with ","[!$k++].$p.direct printing
edit 2: saved 3 bytes by removing the delimiter

breakdown

foreach($argv as$n) # loop through arguments
    $i++&1              # if index is odd   
    ?   $p=$n               # then assign name to $p
    :   ($t=$i>3            # else if index>2
        ?   $t+$n*60            # then add minutes
        :   ($f=strtotime)($n)  # else parse time
        )<=$f(end($argv))       # if result <= parsed party start
        ?                       # then do nothing
        :   print"$p," print"$p\n"         # else print name
    ;

PHP, 118 98 bytes

foreach($argv as$n)$i++&1?$p=$n:($t=$i>3?$t+$n*60:($f=strtotime)($n))<=$f(end($argv))?:print"$p,";

takes input from command line arguments; run with -r or test it online.

prints a trailing comma; add 8 bytes to avoid that: replace "$p," with ","[!$k++].$p.

breakdown

foreach($argv as$n) # loop through arguments
    $i++&1              # if index is odd   
    ?   $p=$n               # then assign name to $p
    :   ($t=$i>3            # else if index>2
        ?   $t+$n*60            # then add minutes
        :   ($f=strtotime)($n)  # else parse time
        )<=$f(end($argv))       # if result <= parsed party start
        ?                       # then do nothing
        :   print"$p,"          # else print name
    ;

PHP, 118 98 95 bytes

foreach($argv as$n)$i++&1?$p=$n:($t=$i>3?$t+$n*60:($f=strtotime)($n))<=$f(end($argv))?:print$p;

takes input from command line arguments (you may interprete that as lines separated by spaces if you like); prints names without a delimiter. Run with -r or test it online.

edit 1: saved 20 bytes with direct printing
edit 2: saved 3 bytes by removing the delimiter

breakdown

foreach($argv as$n) # loop through arguments
    $i++&1              # if index is odd   
    ?   $p=$n               # then assign name to $p
    :   ($t=$i>3            # else if index>2
        ?   $t+$n*60            # then add minutes
        :   ($f=strtotime)($n)  # else parse time
        )<=$f(end($argv))       # if result <= parsed party start
        ?                       # then do nothing
        :   print"$p\n"         # else print name
    ;
2 saved 20 bytes with direct printing
source | link

PHP, 118118 98 bytes

foreach($argv as$n)$i++&1?$p=$n:$r[$p]=$t=$i>3($t=$i>3?$t+$n*60:($f=strtotime)($n);foreach($r as$n=>$t)$t<=$f<=$f($nend($argv))?:print"$nprint"$p,";

takes input from command line arguments; run with -r or test it onlinetest it online.

prints a trailing comma; add 8 bytes to avoid that: replace "$n"$p," with ","[!$k++].$n$p.

breakdown

foreach($argv as$n)     # loop through arguments
    $i++&1                  # if index is odd   
    ?$p=$n   $p=$n               # then assign name
    :$r[$p]=$t=             # else assign result[name]=timeto =$p
        $i>3     :   ($t=$i>3            # else if index>2
        ?$t+$n*60   $t+$n*60            # then add minutes
        :   ($f=strtotime)($n)     # else parse time
;
# $p now holds the start time of the party
foreach($r as$n=>$t)    # loop through results
    $t<=$f<=$f($pend($argv)       )       # if time isresult <= parsed $pparty start
        ?                       # then do nothing
        :print"$n,"   print"$p,"          # else print name
    ;

PHP, 118 bytes

foreach($argv as$n)$i++&1?$p=$n:$r[$p]=$t=$i>3?$t+$n*60:($f=strtotime)($n);foreach($r as$n=>$t)$t<=$f($n)?:print"$n,";

takes input from command line arguments; run with -r or test it online.

prints a trailing comma; add 8 bytes to avoid that: replace "$n," with ","[!$k++].$n.

breakdown

foreach($argv as$n)     # loop through arguments
    $i++&1                  # if index is odd
    ?$p=$n                  # then assign name
    :$r[$p]=$t=             # else assign result[name]=time =
        $i>3                    # if index>2
        ?$t+$n*60               # then add minutes
        :($f=strtotime)($n)     # else parse time
;
# $p now holds the start time of the party
foreach($r as$n=>$t)    # loop through results
    $t<=$f($p)              # if time is <= parsed $p
    ?                       # then do nothing
    :print"$n,"             # else print name
;

PHP, 118 98 bytes

foreach($argv as$n)$i++&1?$p=$n:($t=$i>3?$t+$n*60:($f=strtotime)($n))<=$f(end($argv))?:print"$p,";

takes input from command line arguments; run with -r or test it online.

prints a trailing comma; add 8 bytes to avoid that: replace "$p," with ","[!$k++].$p.

breakdown

foreach($argv as$n) # loop through arguments
    $i++&1              # if index is odd   
    ?   $p=$n               # then assign name to $p
    :   ($t=$i>3            # else if index>2
        ?   $t+$n*60            # then add minutes
        :   ($f=strtotime)($n)  # else parse time
        )<=$f(end($argv))       # if result <= parsed party start
        ?                       # then do nothing
        :   print"$p,"          # else print name
    ;
1
source | link