You want to set up a loop to get the time set and note that by the time your Arduino has that it will be later than that by whole milliseconds.
And if that matters you can add a compensation value.
Before that runs, you might as well get all non-timeset setup done.
When you have timeset, save the value of millis() (say to an unsigned long named 'mark') and note how many seconds from timeset to the next minute. Then,
while ( millis() - mark < milliseconds-to-go );