title: A better way to fill a two-dimensional array with date and zodiac sign
body: <p>I'm working on the following problem:</p>
  
  <p>I want to fill a two-dimensional [365,2] Array. The first value is supposed to hold the date: starting with January 1st and ending with December the 31st. The second value is supposed to hold the corresponding Zodiac Sign to each date:</p>
  
  <p>e.g. <code>array[0, 0]</code> holds 101 and <code>array[0, 1]</code> holds Aries and so on.</p>
  
  <p>I've written a function:</p>
  
  <pre><code>public static void fill_array(string[,] year_zodiac, int days, string zodiac, string startdate, int starting_day) 
  {
      //function to fill array with date and zodiac
      int startdate_int = 0;
      for (int i = starting_day; i &lt;= days; i++)
      {
          year_zodiac[i, 0] = startdate;
          year_zodiac[i, 1] = zodiac;
  
          startdate_int = Int32.Parse(startdate);
          startdate_int++;
          startdate = startdate_int.ToString();
      }
  </code></pre>
  
  <p>and call it like this:</p>
  
  <pre><code>fill_array(main_array, 18, "Aries", "101", 0);
  </code></pre>
  
  <p>This has to be done for every Zodiac sign. I circumvented the month break problem by simply calling <code>fill_array</code> twice (i.e. I call it once for the part of Aries in December and once for the part of aries in January).</p>
  
  <p>This Solution works, but it seems incredibly crude to me.</p>
  
  <p>Can anybody give me some pointers towards a more elegant solution?</p>