You can make a scoreboard:
/scoreboard objectives add time dummy
Create a entity which counts for you:
/summon ArmorStand ~ ~1 ~ {CustomName:"timeCounter",CustomNameVisible:1}
Make it it invisible and a marker if you want:
/summon ArmorStand ~ ~1 ~ {CustomName:"timeCounter",CustomNameVisible:0,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1,NoGravity:1}
Then a repeating command block which increases this scoreboard every tick (20 ticks = 1 second):
/scoreboard players add @e[CustomName:"timeCounter"] time 1
Put your commands into an execute:
/execute @e[score_time_min=200] ~ ~ ~ effect @a 16 10 1 true
/execute @e[score_time_min=200] ~ ~ ~ time set day
Change the 200 to whatever seconds you want * 20:
Sorry, I first understood your question wrong, just remove the reset.
There is no way to make it with one command, but you can achieve it with 5.
/clone ~ ~ ~ ~25 ~5 ~25 ~ 200 ~ filtered force minecraft:stone
/fill ~ 200 ~ ~5 225 ~5 minecraft:grass 0 replace minecraft:stone
/clone ~ ~ ~ ~25 ~5 ~25 ~ 199 ~ filtered force minecraft:stone
/clone ~ 200 ~ ~25 225 ~25 ~ ~1 ~ filtered force minecraft:grass
/fill ~ 200 ~ ~25 225 ~25 air
It will create a copy of stone in sky, check for having air to place a block, an then return blocks and clear the sky.
Best Answer
The square brackets indicate a list, in which you can include any number of elements separated by commas. For example: