S.Singh S.Singh - 6 days ago 5
C# Question

C# 2D arrays calendar day in the month

i just need some guidance on how i can display which dates in the month fall on that day. For example, if user enters 0 for monday and 31 days in that month, it will display all the momdays and which date the mondays correspond to in that month? thanks i have this so far but it doesnt seem to work for user input.

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


}

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