別のプログラムを書いていて、思いついたのでここに記載。
###解説
現在時刻を秒に直して、300のmodを取ることで、直前のきり良い時刻からの経過時刻を取得。300からそれを引くことで、きりの良い時刻までの時間を取得。現在時刻にそれを加える。
using System;
public class Hello{
public static void Main(){
int addSeconds = 300 - (DateTime.Now.Minute*60 + DateTime.Now.Second)%300;
DateTime d = DateTime.Now.AddSeconds(addSeconds);
System.Console.WriteLine(d.ToString());
}
}