Skip to content

11.HtmlCalendar

domanthan edited this page Mar 13, 2020 · 5 revisions
/**
 *
 */
package lesson.common;

import java.io.PrintWriter;

/**
 * @author gridscale
 *
 */
public class HtmlMonth extends TextMonth {

	public static final String HTML_WEEK_TITLE = "<tr>"
			+ "<th style='color:red'>日</th>"
			+ "<th style='color:skyblue'>月</th>"
			+ "<th style='color:skyblue'>火</th>"
			+ "<th style='color:skyblue'>水</th>"
			+ "<th style='color:skyblue'>木</th>"
			+ "<th style='color:skyblue'>金</th>"
			+ "<th style='color:blue'>土</th> </tr>" ;

	public HtmlMonth(int m) {
		super(m);
	}

	@Override
	public String getTitle() {
		return "<h1>" + super.getTitle() + "</h1>";
	}

	public void printOut(PrintWriter writer) {
		writer.println(getTitle());
		writer.println("<table style='width:80%'>");
		writer.println(HTML_WEEK_TITLE);
		for (int i = 0; i < numberOfWeeks(); i++) {
			((HtmlWeek)getWeek(i)).printOut(writer);
		}
		writer.println("</table>");
	}

	/**
	 *
	 */
	public void printOut() {
		System.out.println(getTitle());
		System.out.println("<table>");
		System.out.println(HTML_WEEK_TITLE);
		for (int i = 0; i < numberOfWeeks(); i++) {
			getWeek(i).printOut();
		}
		System.out.println("</table>");
	}

}



/**
 *
 */
package lesson.common;

/**
 * @author gridscale
 *
 */
public class HtmlMonthBuilder {
	/**
	 *
	 * @param year
	 * @param m
	 * @return
	 */
	public HtmlMonth build(int year, int m) {
		HtmlMonth month = new HtmlMonth(m);

		// How many weeks?
		int numberOfDays = CalendarUtil.howManyDaysOfMonth(year, m);
		HtmlWeek textWeek = new HtmlWeek();
		int weekNumber = 0;
		month.addWeek(textWeek, weekNumber);

		for (int day = 1; day <= numberOfDays; day++) {
			int weekDay = CalendarUtil.weekDay(year, m, day);
			textWeek.addWeekDay(weekDay, day);
			if (weekDay == 6 && day < numberOfDays) {
				textWeek = new HtmlWeek();
				weekNumber++;
				month.addWeek(textWeek, weekNumber);
			}
		}

		return month;
	}

}

/**
 *
 */
package lesson.common;

import java.io.PrintWriter;

/**
 * @author gridscale
 *
 */
public class HtmlWeek extends TextWeek {

	@Override
	public void printOut() {
		System.out.println("<tr>");
		for (int i = 0; i < 7; i++) {
			System.out.print("<td>" + getDay(i) +"</td>");
		}
		System.out.println("</tr>");
	}


    // 192.168.11.10
	public void printOut(PrintWriter writer) {
		writer.println("<tr>");
		for (int i = 0; i < 7; i++) {
			writer.print("<td>" + getDay(i) +"</td>");
		}
		writer.println("</tr>");
	}
}