我的任务是制作一个代码来打印日历,如下图所示:
用户必须输入月份和年份。下面的代码显示我需要的内容,但仅添加添加事件和显示事件的方法。我不知道从哪里开始,怎么开始呢?我认为最好的想法是将数据保存到某个文件或其他内容。
public static int day(int M, int D, int Y) {
int y = Y - (14 - M) / 12;
int x = y + y/4 - y/100 + y/400;
int m = M + 12 * ((14 - M) / 12) - 2;
int d = (D + x + (31*m)/12) % 7;
return d;
}
// return true if the given year is a leap year
public static boolean isLeapYear(int year) {
if ((year % 4 == 0) && (year % 100 != 0)) return true;
if (year % 400 == 0) return true;
return false;
}
public static void main(String[] args) {
Scanner ulaz = new Scanner(System.in);
int M = ulaz.nextInt(); // month (Jan = 1, Dec = 12)
int Y = ulaz.nextInt(); // year
// months[i] = name of month i
String[] months = {
"", // leave empty so that months[1] = "January"
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December"
};
// days[i] = number of days in month i
int[] days = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
// check for leap year
if (M == 2 && isLeapYear(Y)) days[M] = 29;
// print calendar header
System.out.println(" " + months[M] + " " + Y);
System.out.println(" S M Tu W Th F S");
// starting day
int d = day(M, 1, Y);
// print the calendar
for (int i = 0; i < d; i++)
System.out.print(" ");
for (int i = 1; i <= days[M]; i++) {
System.out.printf("%2d ", i);
if (((i + d) % 7 == 0) || (i == days[M])) System.out.println();
}
}
}
答案 0 :(得分:0)
在这里,您可以找到有关如何从头开始制作日历的精彩教程,包括事件显示。它是法语,但完整代码可在评论中找到:http://www.grafikart.fr/tutoriels/php/calendrier-php-157
关于您的问题,最好将您的事件存储在数据库中。 基本上你应该创建一个包含colums的表,如下所示: id_event,date_event,time_event,description_event ....以及其他详细信息(如果需要)。
然后,您将通过php脚本查询数据库(请参阅php pdo教程)。最终你可以通过javascript和ajax调用php脚本来添加,存储,修改事件。我个人通过函数getJSON使用jQuery。
祝你好运:)