C# 2D arrays 一个月中的日历日
C# 2D arrays calendar day in the month
我只需要一些指导,了解如何显示当月的哪些日期落在那天。例如,如果用户输入 0 表示星期一和该月的 31 天,它将显示所有的星期一以及该月的星期一对应的日期?谢谢,到目前为止我已经有了这个,但它似乎不适用于用户输入。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Calendar
{
class Program
{
static int startDay = new int();
static int totalDays = new int();
static void Main(string[] args)
{
Console.Write("Enter the day the first falls on (Mon = 0, etc): ");
startDay = Convert.ToInt32(Console.ReadLine());
Console.Write("How many days in the month? ");
totalDays = Convert.ToInt32(Console.ReadLine());
}
public static List<DateTime> getDates()
{
List<DateTime> lstSundays = new List<DateTime>();
int intMonth = DateTime.Now.Month;
int intYear = DateTime.Now.Year;
int intDaysThisMonth = DateTime.DaysInMonth(intYear, intMonth);
DateTime oBeginnngOfThisMonth = new DateTime(intYear, intMonth, 1);
for (int i = 1; i < intDaysThisMonth + 1; i++)
{
if (oBeginnngOfThisMonth.AddDays(i).DayOfWeek == DayOfWeek.Sunday)
{
lstSundays.Add(new DateTime(intYear, intMonth, i));
}
}
return lstSundays;
}
}
}
void DisplayMonth()
{
Console.WriteLine("Please insert the numerical value of the month you wish to display:\t");
int myMonth = Convert.ToInt32(Console.ReadLine());
myMonth -= 1;
Console.WriteLine();
switch (myMonth)
{
case 0:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.JANUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 1:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.FEBRUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 2:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.MARCH.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 3:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.APRIL.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 4:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.MAY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 5:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JUNE.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 6:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JULY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 7:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.AUGUST.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 8:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.SEPTEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 9:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.OCTOBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 10:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.NOVEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 11:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.DECEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
default:
break;
}
}
环顾网站。得到你的轴承。没有看到您的代码,任何人都很难帮助您,而图片也无济于事。你可以把它放在你的问题中,当你缩进它时它会显示为代码。您还可以将图片放入您的问题中 - 不必(也不应该)链接到图片。让我们更容易为您提供答案,让您自己更容易获得答案。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace calenderMonth1
{
class Program
{
int[][] months;
int day;
static void Main(string[] args)
{
Program calendar = new Program();
calendar.Months();
calendar.ColRow();
calender.DisplayMonth();
}
public void Display(int itr)
{
for (int i = 0; i < itr; i ++)
{
Console.WriteLine();
}
}
public enum MonthNames
{
JANUARY,
FEBRUARY,
MARCH,
APRIL,
MAY,
JUNE,
JULY,
AUGUST,
SEPTEMBER,
OCTOBER,
NOVEMBER,
DECEMBER
}
public void Months()
{
int month;
int[] months = new int[12];
for (int i = 0; i < months.Count(); i ++)
{
month = months[i];
Console.WriteLine(month + "\t");
}
}
public void ColRow()
{
months = new int[12][];
for (int i = 0; i < 12; i ++)
{
switch (i)
{
case 0:
months[i] = new int[31];
break;
case 1:
months[i] = new int[28]; //This may not always be true... Leap Year every 4 years
break;
case 2:
months[i] = new int[31];
break;
case 3:
months[i] = new int[30];
break;
case 4:
months[i] = new int[31];
break;
case 5:
months[i] = new int[30];
break;
case 6:
months[i] = new int[31];
break;
case 7:
months[i] = new int[31];
break;
case 8:
months[i] = new int[30];
break;
case 9:
months[i] = new int[31];
break;
case 10:
months[i] = new int[30];
break;
case 11:
months[i] = new int[31];
break;
default:
break;
}
}
int dayInYear = 1;
for (int thisMonth = 0; thisMonth < months.Count(); thisMonth++)
{
for (day = 0; day < months[thisMonth].Count(); day++)
{
months[thisMonth][day] = dayInYear;
dayInYear++;
}
}
for (int row = 0; row < 12; row ++)
{
for (int col =0; col < months[row].Count(); col ++) //Make sure the array doesn't go out of bounds...
{
switch (row)
{
case 0:
Console.WriteLine(MonthNames.JANUARY.ToString() + "\t" + months[row][col] + "\n");
break;
case 1:
Console.WriteLine(MonthNames.FEBRUARY.ToString() + "\t" + months[row][col] + "\n");
break;
case 2:
Console.WriteLine(MonthNames.MARCH.ToString() + "\t" + months[row][col] + "\n");
break;
case 3:
Console.WriteLine(MonthNames.APRIL.ToString() + "\t" + months[row][col] + "\n");
break;
case 4:
Console.WriteLine(MonthNames.MAY.ToString() + "\t" + months[row][col] + "\n");
break;
case 5:
Console.WriteLine(MonthNames.JUNE.ToString() + "\t" + months[row][col] + "\n");
break;
case 6:
Console.WriteLine(MonthNames.JULY.ToString() + "\t" + months[row][col] + "\n");
break;
case 7:
Console.WriteLine(MonthNames.AUGUST.ToString() + "\t" + months[row][col] + "\n");
break;
case 8:
Console.WriteLine(MonthNames.SEPTEMBER.ToString() + "\t" + months[row][col] + "\n");
break;
case 9:
Console.WriteLine(MonthNames.OCTOBER.ToString() + "\t" + months[row][col] + "\n");
break;
case 10:
Console.WriteLine(MonthNames.NOVEMBER.ToString() + "\t" + months[row][col] + "\n");
break;
case 11:
Console.WriteLine(MonthNames.DECEMBER.ToString() + "\t" + months[row][col] + "\n");
break;
default:
break;
}
}
}
}
}
void DisplayMonth()
{
Console.WriteLine("Please insert the numerical value of the month you wish to display:\t");
int myMonth = Convert.ToInt32(Console.ReadLine());
myMonth -= 1;
Console.WriteLine();
switch (myMonth)
{
case 0:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.JANUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 1:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.FEBRUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 2:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.MARCH.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 3:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.APRIL.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 4:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.MAY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 5:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JUNE.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 6:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JULY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 7:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.AUGUST.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 8:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.SEPTEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 9:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.OCTOBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 10:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.NOVEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 11:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.DECEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
default:
break;
}
}
}
我只需要一些指导,了解如何显示当月的哪些日期落在那天。例如,如果用户输入 0 表示星期一和该月的 31 天,它将显示所有的星期一以及该月的星期一对应的日期?谢谢,到目前为止我已经有了这个,但它似乎不适用于用户输入。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Calendar
{
class Program
{
static int startDay = new int();
static int totalDays = new int();
static void Main(string[] args)
{
Console.Write("Enter the day the first falls on (Mon = 0, etc): ");
startDay = Convert.ToInt32(Console.ReadLine());
Console.Write("How many days in the month? ");
totalDays = Convert.ToInt32(Console.ReadLine());
}
public static List<DateTime> getDates()
{
List<DateTime> lstSundays = new List<DateTime>();
int intMonth = DateTime.Now.Month;
int intYear = DateTime.Now.Year;
int intDaysThisMonth = DateTime.DaysInMonth(intYear, intMonth);
DateTime oBeginnngOfThisMonth = new DateTime(intYear, intMonth, 1);
for (int i = 1; i < intDaysThisMonth + 1; i++)
{
if (oBeginnngOfThisMonth.AddDays(i).DayOfWeek == DayOfWeek.Sunday)
{
lstSundays.Add(new DateTime(intYear, intMonth, i));
}
}
return lstSundays;
}
}
}
void DisplayMonth()
{
Console.WriteLine("Please insert the numerical value of the month you wish to display:\t");
int myMonth = Convert.ToInt32(Console.ReadLine());
myMonth -= 1;
Console.WriteLine();
switch (myMonth)
{
case 0:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.JANUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 1:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.FEBRUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 2:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.MARCH.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 3:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.APRIL.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 4:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.MAY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 5:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JUNE.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 6:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JULY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 7:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.AUGUST.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 8:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.SEPTEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 9:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.OCTOBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 10:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.NOVEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 11:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.DECEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
default:
break;
}
}
环顾网站。得到你的轴承。没有看到您的代码,任何人都很难帮助您,而图片也无济于事。你可以把它放在你的问题中,当你缩进它时它会显示为代码。您还可以将图片放入您的问题中 - 不必(也不应该)链接到图片。让我们更容易为您提供答案,让您自己更容易获得答案。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace calenderMonth1
{
class Program
{
int[][] months;
int day;
static void Main(string[] args)
{
Program calendar = new Program();
calendar.Months();
calendar.ColRow();
calender.DisplayMonth();
}
public void Display(int itr)
{
for (int i = 0; i < itr; i ++)
{
Console.WriteLine();
}
}
public enum MonthNames
{
JANUARY,
FEBRUARY,
MARCH,
APRIL,
MAY,
JUNE,
JULY,
AUGUST,
SEPTEMBER,
OCTOBER,
NOVEMBER,
DECEMBER
}
public void Months()
{
int month;
int[] months = new int[12];
for (int i = 0; i < months.Count(); i ++)
{
month = months[i];
Console.WriteLine(month + "\t");
}
}
public void ColRow()
{
months = new int[12][];
for (int i = 0; i < 12; i ++)
{
switch (i)
{
case 0:
months[i] = new int[31];
break;
case 1:
months[i] = new int[28]; //This may not always be true... Leap Year every 4 years
break;
case 2:
months[i] = new int[31];
break;
case 3:
months[i] = new int[30];
break;
case 4:
months[i] = new int[31];
break;
case 5:
months[i] = new int[30];
break;
case 6:
months[i] = new int[31];
break;
case 7:
months[i] = new int[31];
break;
case 8:
months[i] = new int[30];
break;
case 9:
months[i] = new int[31];
break;
case 10:
months[i] = new int[30];
break;
case 11:
months[i] = new int[31];
break;
default:
break;
}
}
int dayInYear = 1;
for (int thisMonth = 0; thisMonth < months.Count(); thisMonth++)
{
for (day = 0; day < months[thisMonth].Count(); day++)
{
months[thisMonth][day] = dayInYear;
dayInYear++;
}
}
for (int row = 0; row < 12; row ++)
{
for (int col =0; col < months[row].Count(); col ++) //Make sure the array doesn't go out of bounds...
{
switch (row)
{
case 0:
Console.WriteLine(MonthNames.JANUARY.ToString() + "\t" + months[row][col] + "\n");
break;
case 1:
Console.WriteLine(MonthNames.FEBRUARY.ToString() + "\t" + months[row][col] + "\n");
break;
case 2:
Console.WriteLine(MonthNames.MARCH.ToString() + "\t" + months[row][col] + "\n");
break;
case 3:
Console.WriteLine(MonthNames.APRIL.ToString() + "\t" + months[row][col] + "\n");
break;
case 4:
Console.WriteLine(MonthNames.MAY.ToString() + "\t" + months[row][col] + "\n");
break;
case 5:
Console.WriteLine(MonthNames.JUNE.ToString() + "\t" + months[row][col] + "\n");
break;
case 6:
Console.WriteLine(MonthNames.JULY.ToString() + "\t" + months[row][col] + "\n");
break;
case 7:
Console.WriteLine(MonthNames.AUGUST.ToString() + "\t" + months[row][col] + "\n");
break;
case 8:
Console.WriteLine(MonthNames.SEPTEMBER.ToString() + "\t" + months[row][col] + "\n");
break;
case 9:
Console.WriteLine(MonthNames.OCTOBER.ToString() + "\t" + months[row][col] + "\n");
break;
case 10:
Console.WriteLine(MonthNames.NOVEMBER.ToString() + "\t" + months[row][col] + "\n");
break;
case 11:
Console.WriteLine(MonthNames.DECEMBER.ToString() + "\t" + months[row][col] + "\n");
break;
default:
break;
}
}
}
}
}
void DisplayMonth()
{
Console.WriteLine("Please insert the numerical value of the month you wish to display:\t");
int myMonth = Convert.ToInt32(Console.ReadLine());
myMonth -= 1;
Console.WriteLine();
switch (myMonth)
{
case 0:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.JANUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 1:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.FEBRUARY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 2:
for (int col = 0; col < months[myMonth].Count(); col++)
Console.WriteLine(MonthNames.MARCH.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 3:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.APRIL.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 4:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.MAY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 5:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JUNE.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 6:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.JULY.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 7:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.AUGUST.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 8:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.SEPTEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 9:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.OCTOBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 10:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.NOVEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
case 11:
for (int col = 0; col < months[myMonth].Count()-1; col++)
Console.WriteLine(MonthNames.DECEMBER.ToString() + "\t" + months[myMonth][col] + "\n");
break;
default:
break;
}
}
}