【问题标题】:C# 2D arrays calendar day in the monthC# 2D 数组月份中的日历日
【发布时间】:2016-11-29 17:04:56
【问题描述】:

我只需要一些关于如何显示该月中的哪些日期属于那天的指导。例如,如果用户输入 0 表示星期一和该月的 31 天,它将显示所有的 momdays 以及星期一对应于该月的哪个日期?谢谢我到目前为止有这个,但它似乎不适用于用户输入。

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

}

【问题讨论】:

  • 欢迎来到 Stack Overflow。请将代码发布为文本而不是图片,您的要求太模糊,我们目前无法为您提供帮助。请阅读codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question 并记住,Stack Overflow 的目标是创建一个高质量问题和答案的存储库。
  • 嗯...我不认为创建一个新的个人资料并再次提出相同的问题,与最初向您指出的完全相同的缺乏信息,将会帮助。 stackoverflow.com/questions/40869698/…
  • 我正要发布同样的内容。将此添加到您的问题“程序应该询问您该月的第一天所在的星期几(编号在 0 和 6 之间)以及该月有多少天。它还应该询问月份的名称。你希望得到怎样的帮助?人们无法读懂你的想法

标签: c# arrays calendar days


【解决方案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;
        }
    }
}

【讨论】:

  • 这不显示月份中的哪一天——而是显示一年中的哪一天。如果你想显示月份中的哪一天,切换这个://int dayInYear = 1;@987654323 @{for (day = 0; day &lt; months[thisMonth].Count(); day++){months[thisMonth][day] = day;}}
  • 请将复选框标记为答案,并为答案投票
  • 这个月有几天没有用户输入?和月份名称?
  • 我已经完成了你所说的,谢谢,但只是最后一点 - 这在本月的几天里没有得到用户输入?和月份名称?
  • 然后调整它。我想教你怎么钓鱼……不要为你做所有的钓鱼……
【解决方案2】:
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;
        }
    }

浏览网站。了解你的方位。任何人都很难在没有看到你的代码的情况下帮助你,而且一张图片也无济于事。你可以把它放在你的问题中,当你缩进它时它会显示为代码。你也可以在你的问题中加入图片——不一定是(也不应该是)图片的链接。让我们更轻松地为您提供答案,让您自己更轻松地获得答案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
相关资源
最近更新 更多