C#コンソールでカレンダーの制作をしています。
コード一番下の
if (n % 7 == 6 && d != dm)
Console.WriteLine(" ");
の部分で土曜日の日付になったら改行するようにしたいのですが、\nを挿入しても、WriteLineを記述しても改行されません。
ブレイクポイントを設置すると通ってはいるので、何が原因なのかわからない状態です。
どうしたら改行されるか、アドバイスいただけますと幸いです。
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6 7namespace ConsoleApp1 8{ 9 class Program 10 { 11 static void Main() 12 { 13 int year = 0; 14 int month = 0; 15 int days = 0; 16 int youbi; 17 18 GetYearMonth(ref year, ref month); 19 days = GetMonthDays(year, month); 20 youbi = GetWeekDay(year, month, days); 21 PrintCalendar(days,youbi); 22 23 Console.ReadKey(); 24 } 25 26 //入力を受け付ける 27 static void GetYearMonth(ref int py, ref int pm) 28 { 29 Console.Write("カレンダー表示"); 30 Console.Write("西暦入力"); 31 py = int.Parse(Console.ReadLine()); 32 Console.Write("月入力"); 33 pm = int.Parse(Console.ReadLine()); 34 } 35 36 //日数を返す 37 static int GetMonthDays(int y,int m) 38 { 39 int dm; //日数を格納 40 41 switch (m) 42 { 43 case 1: case 3: case 5: case 7: case 8: case 10: case 12: 44 dm = 31; 45 break; 46 case 4: case 6: case 9: case 11: 47 dm = 30; 48 break; 49 case 2: 50 if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0) 51 { 52 dm = 29; 53 break; 54 } else { 55 dm = 28; 56 break; 57 } 58 default: 59 dm = 0; 60 break; 61 } 62 return dm; 63 } 64 65 static int GetWeekDay(int y , int m, int d) 66 { 67 int w; //曜日 68 69 //1,2月は13月,14月とする 70 if(m == 1 || m == 2) 71 { 72 y--; 73 m += 12; 74 } 75 76 //ツェラーの公式 77 w = (y + y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d) % 7; 78 79 return w; 80 } 81 82 //カレンダー表示,dmは日数,dwは最初の日の曜日 83 static void PrintCalendar(int dm, int dw) 84 { 85 int n, d; 86 87 for (n = 0; n < dw; n++) 88 Console.Write(" "); 89 for (d = 1; d <= dm; d++) 90 Console.Write("{0, 4}", d); 91 if (n % 7 == 6 && d != dm) 92 Console.WriteLine(" "); 93 n++; 94 } 95 } 96}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/20 04:58
2019/12/20 05:00 編集
2019/12/20 05:02 編集
2019/12/20 05:10