csharp
1var year = 2018;
2var month = 7;
3var jpTz = new TimeSpan(9, 0, 0);
4var days = Enumerable.Range(1,DateTime.DaysInMonth(year,month)).Select(d => new DateTimeOffset(year, month, d, 0, 0, 0, jpTz));
5var jpCul = new System.Globalization.CultureInfo("ja-JP");
6Console.WriteLine(string.Join(" ", days.Take(7).Select(d => d.ToString("ddd", jpCul))));
7var skips = string.Join(Environment.NewLine, (new []{0, 7, 14, 21, 28}).Select(s => string.Join(" ", days.Skip(s).Take(7).Select(d => d.ToString("dd")))));
8Console.WriteLine(skips);