C#2D数组日历中的日历日

时间:2016-11-29 17:04:57

标签: c# arrays calendar days

我只需要一些指导,告诉我如何显示当月的哪些日期。例如,如果用户在星期一输入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;
    }
}

}

2 个答案:

答案 0 :(得分:1)

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;
        }
    }

浏览网站。得到你的轴承。如果没有看到您的代码,任何人都很难帮助您,而且图片并没有帮助。你可以把它放在你的问题中,当你缩进它时它会显示为代码。您还可以将图像放在您的问题中 - 不必(并且不应该)链接到图像。通过让我们更轻松地为您提供答案,让您更轻松地获得答案。

答案 1 :(得分:1)

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;
        }
    }
}