C# 可选择不同月份的简单日历
提示如下:编写一个程序 打印一个月的日历。输入 由指定第一个参数的整数组成 每月的第几天(1=星期日)和 指定需要多少天的整数 一个月后 下面是它应该是什么样子的示例输出:C# 可选择不同月份的简单日历,c#,calendar,console-application,C#,Calendar,Console Application,提示如下:编写一个程序 打印一个月的日历。输入 由指定第一个参数的整数组成 每月的第几天(1=星期日)和 指定需要多少天的整数 一个月后 下面是它应该是什么样子的示例输出: First day of the month 3 Number of days in the month 31 Sunday Monday Tuesday Wednesday Thursday Friday Saturday 1 2
First day of the month 3
Number of days in the month 31
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
我一直在做这件事,这是我到目前为止所做的
namespace Program_202t
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Program 202t";
Console.Write("Enter the first day of the month: ");
int year = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter the number of days in a month: ");
int month = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\nSunday Monday Tuesday Wedsnesday Thursday Friday Saturday");
if (year == 1)
{
Console.SetCursorPosition(0, 4);
for (int i = 1; i <= 10; i++)
{
Console.Write(i + " ");
if (((i) % 7) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
for (int b = 11; b <= month; b++)
{
if (((b) % 7) > 0)
{
Console.Write(b + " ");
}
else
{
Console.Write(b + "\n");
}
}
}
if (year == 2)
{
//Console.SetCursorPosition(10, 4);
for (int i = 1; i <= month; i++)
{
if (i == 1)
{
Console.Write(" " + i + " ");
}
else if (i > 1 && i < 11 && i != 6)
{
Console.Write(i + " ");
}
Console.Write("\b");
if (i == 6)
{
Console.Write(i + "\n");
}
if (i > 11 && i != 14)
{
Console.Write(i + " ");
}
if (i == 14)
{
Console.Write(i + "\n");
}
/*if (((i) % 6) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
//FIX!!!
for (int b = 11; b <= month; b++)
{
if (((b) % 13) > 0 && b >13)
{
Console.Write(b + " ");
}
if (((b) % 20) > 0 && b <= 13)
{
Console.Write(b + " ");
}
else
{
Console.Write("\n");
}
}*/
}
if (year == 3)
{
Console.SetCursorPosition(20, 4);
for (int i = 1; i <= 10; i++)
{
Console.Write(i + " ");
if (((i) % 5) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
for (int b = 11; b <= month; b++)
{
if (((b) % 7) > 0)
{
Console.Write(b + " ");
}
else
{
Console.Write("\n");
}
}
}
if (year == 4)
{
for (int i = 1; i <= 10; i++)
{
Console.Write(i + " ");
if (((i) % 7) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
for (int b = 11; b <= month; b++)
{
if (((b) % 7) > 0)
{
Console.Write(b + " ");
}
else
{
Console.Write(b + "\n");
}
}
}
if (year == 5)
{
for (int i = 1; i <= 10; i++)
{
Console.Write(i + " ");
if (((i) % 7) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
for (int b = 11; b <= month; b++)
{
if (((b) % 7) > 0)
{
Console.Write(b + " ");
}
else
{
Console.Write(b + "\n");
}
}
}
if (year == 6)
{
for (int i = 1; i <= 10; i++)
{
Console.Write(i + " ");
if (((i) % 7) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
for (int b = 11; b <= month; b++)
{
if (((b) % 7) > 0)
{
Console.Write(b + " ");
}
else
{
Console.Write(b + "\n");
}
}
}
if (year == 7)
{
for (int i = 1; i <= 10; i++)
{
Console.Write(i + " ");
if (((i) % 7) > 0)
{
}
else
{
Console.Write("\n");
}
}
Console.Write("\b");
for (int b = 11; b <= month; b++)
{
if (((b) % 7) > 0)
{
Console.Write(b + " ");
}
else
{
Console.Write(b + "\n");
}
}
}
Console.ReadLine();
}
}
}
名称空间程序\u 202t
{
班级计划
{
静态void Main(字符串[]参数)
{
Console.Title=“程序202t”;
Console.Write(“输入月份的第一天:”);
int year=Convert.ToInt32(Console.ReadLine());
Console.Write(“输入一个月的天数:”);
int month=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(\n星期一星期二星期三星期四星期五星期六”);
如果(年份==1)
{
控制台。设置光标位置(0,4);
对于(int i=1;i 0)
{
}
其他的
{
控制台。写入(“\n”);
}
}
控制台。写入(“\b”);
对于(intb=11;b0)
{
控制台。写入(b+“”);
}
其他的
{
控制台。写入(b+“\n”);
}
}
}
如果(年份==2)
{
//控制台。设置光标位置(10,4);
对于(int i=1;i 1&&i<11&&i!=6)
{
控制台。写入(i+“”);
}
控制台。写入(“\b”);
如果(i==6)
{
控制台。写入(i+“\n”);
}
如果(i>11&&i!=14)
{
控制台。写入(i+“”);
}
如果(i==14)
{
控制台。写入(i+“\n”);
}
/*如果(((i)%6)>0)
{
}
其他的
{
控制台。写入(“\n”);
}
}
控制台。写入(“\b”);
//修正!!!
对于(intb=11;b0&&b>13)
{
控制台。写入(b+“”);
}
如果((b)%20)>0&&b好的,我快速地运行了代码,我看到了您的问题所在,所以我会给您一些关于如何查找的提示
首先,您的代码围绕所需的输出格式存在逻辑问题。有更简单的方法可以输出正确的格式。如果查看“然后查看格式”,您可能会找到更简单的方法
接下来,您会遇到块结尾未对齐的问题,因此某些代码永远无法执行。我建议您在第一条if
语句中中断代码,并逐步了解代码在运行时的执行情况
最后,我建议稍微澄清一下变量名。如果第一个输入代表一周中的那一天,那么也许可以使用一个代表它的变量名(例如dayOfWeek
,但month
不适合我)。此外,月份的天数可以使用更好的变量名
如果您需要更多的指导,请提出问题。我很乐意提供帮助。这样行吗
class Program
{
static void Main(string[] args)
{
Console.Title = "Program 202t";
Console.Write("Enter the first day of the month: ");
int startingDay = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter the number of days in a month: ");
int daysInMonth = Convert.ToInt32(Console.ReadLine());
List<string> daysOfTheWeek = new List<string>() {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
foreach (string day in daysOfTheWeek)
{
Console.Write($"{day,10}");
}
List<string> days = new List<string>();
for (int i = 0; i < startingDay; i++)
{
days.Add($"{"",10}");
}
for (int i = 1; i < daysInMonth+1; i++)
{
days.Add($"{i,10}");
}
for (int i = 0; i < days.Count; i++)
{
if (i%7!=0) {Console.Write(days[i]);}
else {Console.WriteLine(days[i]);}
}
}
类程序
{
静态void Main(字符串[]参数)
{
Console.Title=“程序202t”;
Console.Write(“输入月份的第一天:”);
int startingDay=Convert.ToInt32(Console.ReadLine());
Console.Write(“输入一个月的天数:”);
int daysInMonth=Convert.ToInt32(Console.ReadLine());
List daysOfTheWeek=新列表(){“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”};
foreach(以daysOfTheWeek为单位的字符串日)
{
Console.Write($“{day,10}”);
}
列表天数=新列表();
对于(int i=0;i
什么样的问题?需要处理的代码太多了。你能把它缩小到你认为引起问题的地方吗?IF和FOR语句有问题;我只是把整件事都包括进来供参考OK,谢谢你的建议。你能再解释一下1和2吗,因为我不明白它们的意思?还有,你能采取行动吗请帮助我并将代码更改为合理的代码?谢谢!运行您的实际代码,我可以让它打印出year=2
和month=30
,但您的格式逻辑中存在导致输出不对齐的问题。这可能会让您在作业中损失分数。查看您的逻辑并把它写在纸上,看看结果会是什么,直到你对它有了更多的了解。一旦你了解了它,代码调整就会变得容易一些。第二,看看你的if
块,看看它们的开始和结束。我可以帮你编写代码,但作为一名大学教师,我觉得现在指导是最好的。是的,这是一个好方法太好了!谢谢你。