System.Web.UI.WebControls.Calendar.WriteDayHeader C# (CSharp) Method

WriteDayHeader() private method

private WriteDayHeader ( System.Web.UI.HtmlTextWriter writer, bool enabled ) : void
writer System.Web.UI.HtmlTextWriter
enabled bool
return void
		void WriteDayHeader (HtmlTextWriter writer, bool enabled)
		{
			int i, first;
			string dayName;
			i = first = (int) (DisplayFirstDayOfWeek);
			TableCell cell;


			writer.RenderBeginTag (HtmlTextWriterTag.Tr);

			if (SelectionMode == CalendarSelectionMode.DayWeek) {
				cell = new TableCell();
				cell.HorizontalAlign = HorizontalAlign.Center;
				cell.ApplyStyle (DayHeaderStyle);

				// Empty Cell
				cell.RenderBeginTag (writer);
				cell.RenderEndTag (writer);
			} else {
				if (SelectionMode == CalendarSelectionMode.DayWeekMonth) {
					TableCell selector = new TableCell ();
					selector.ApplyStyle (SelectorStyle);
					selector.HorizontalAlign = HorizontalAlign.Center;

					DateTime date = new DateTime (DisplayDate.Year, DisplayDate.Month, 1); // first date
					int days =  DateTime.DaysInMonth (DisplayDate.Year, DisplayDate.Month);

					selector.RenderBeginTag (writer);
					writer.Write (BuildLink ("R" + GetDaysFromZenith (date) + days, SelectMonthText, DayHeaderStyle.ForeColor, enabled));
					selector.RenderEndTag (writer);
				}
			}

			DateTimeFormatInfo dti = DateInfo;
			while (true) {
				DayOfWeek dayOfWeek = (DayOfWeek) i;
				dayName = dti.GetDayName (dayOfWeek);

#if NET_2_0
				if (UseAccessibleHeader) {
					writer.AddAttribute (HtmlTextWriterAttribute.Abbr, dayName);
					writer.AddAttribute (HtmlTextWriterAttribute.Scope, "col", false);
					cell = new TableHeaderCell();
				}
				else
#endif
					cell = new TableCell();

				cell.HorizontalAlign = HorizontalAlign.Center;
				cell.ApplyStyle (DayHeaderStyle);

				cell.RenderBeginTag (writer);

				switch (DayNameFormat) {
				case DayNameFormat.FirstLetter:
					dayName = dayName.Substring (0, 1);
					break;
				case DayNameFormat.FirstTwoLetters:
					dayName = dayName.Substring (0, 2);
					break;
#if NET_2_0
				case DayNameFormat.Shortest:
					dayName = dti.GetShortestDayName (dayOfWeek);
					break;
#endif
				case DayNameFormat.Full:
					break;
				case DayNameFormat.Short:
				default:
					dayName = dti.GetAbbreviatedDayName (dayOfWeek);
					break;
				}

				writer.Write (dayName);
				cell.RenderEndTag (writer);

				if (i >= daysInAWeek - 1) {
					i = 0;
				}
				else {
					i++;
				}
				if (i == first)
					break;
			}

			writer.RenderEndTag ();
		}