通过输入的年份和月份输出对应的日历
来源:互联网 发布:微信僵尸粉源码php 编辑:程序博客网 时间:2024/04/29 20:23
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("Enter full year (e.g., 2001): ");
int year = input.nextInt();
System.out.print("Enter month as number between 1 and 12: ");
int month = input.nextInt();
printMonth(year, month);
System.out.println("\n------------------------------");
System.out.println();
}
}
public static void printMonth(int year, int month) {
printMonthTitle(year, month);
printMonthBody(year, month);
}
public static void printMonthTitle(int year, int month) {
System.out.println(" " + getMonthName(month) + " " + year);
System.out.println("----------------------------------");
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
}
public static void printMonthBody(int year, int month) {
int startDay = getStartDay(year, month);
int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);
int i = 0;
for (i = 0; i < startDay; i++) {
System.out.print(" ");
}
for (i = 1; i <= numberOfDaysInMonth; i++) {
System.out.printf("%4d", i);
if ((i + startDay) % 7 == 0) {
System.out.println();
}
}
}
public static String getMonthName(int month) {
String monthName = "";
switch (month) {
case 1:
monthName = "January";
break;
case 2:
monthName = "February";
break;
case 3:
monthName = "March";
break;
case 4:
monthName = "April";
break;
case 5:
monthName = "May";
break;
case 6:
monthName = "June";
break;
case 7:
monthName = "July";
break;
case 8:
monthName = "August";
break;
case 9:
monthName = "September";
break;
case 10:
monthName = "October";
break;
case 11:
monthName = "November";
break;
case 12:
monthName = "December";
break;
}
return monthName;
}
public static int getStartDay(int year, int month) {
final int START_DAY_FOR_JAN_1800 = 3;
int totalNumberOfDays = getTotalNumberOfDays(year, month);
return (totalNumberOfDays + START_DAY_FOR_JAN_1800) % 7;
}
public static int getTotalNumberOfDays(int year, int month) {
int total = 0;
for (int i = 1800; i < year; i++) {
if (isLeapYear(i)) {
total += 366;
} else {
total += 365;
}
}
for (int i = 1; i < month; i++) {
total += getNumberOfDaysInMonth(year, i);
}
return total;
}
public static int getNumberOfDaysInMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
|| month == 10 || month == 12) {
return 31;
}
if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
}
if (month == 2) {
return isLeapYear(year) ? 29 : 28;
}
return 0;
}
public static boolean isLeapYear(int year) {
return (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
}
上述代码通过Java实现了通过输入年份和月份输出对应的日历信息。代码上传之后就变得不是很规范了。
- 通过输入的年份和月份输出对应的日历
- C语言实验:输入任意一个年份和月份,输出该月份的公历日历
- C语言实验:输入任意一个年份和月份,输出该月份的公历日历
- 输入任意一个年份和月份,输出该月份的公历日历
- 输出某年某月的日历页,通过 键盘输入将年份和月份时间传递到程序中。
- 简单的日历程序,输入年份和月份打印出日历
- 日历系统——控制台输入年份和月份,打印该月的日历
- 通过用户输入的年份与月份来算显示当月的日历
- 输入年份和月份,输出月份天数
- JAVA 输入年份月份打印该月的日历
- JAVA 输入年份月份打印该月的日历
- Java使用Calendar类在控制台输出指定年份和月份的日历
- java输入年份和月份,输出天数
- 输入一个月份,输出对应月份的单词
- 根据用户输入年和月份值,输出对应月份的天数。
- Java:输入年份和月份打印出相应的日历表
- 输入月份和年份返回是一年的第几天
- 输入年月,输出该月份的日历页
- opencv中阈值函数处理
- 前端开发面试题整理(JS篇)
- C++类中static的引用
- 给html超链接设置事件
- vm.overcommit_memory和vm.overcommit_ratio
- 通过输入的年份和月份输出对应的日历
- 怎样写一个解释器 --没看懂
- 你真的知道你看到的UTF-8字符是什么吗?
- 黑马程序员-讲解Vector的特有取出方式Enumeration学习日记
- 指针与数
- Android OpenGL ES绘制透明纹理立方体(未解决)
- 算法学习---基本数据类型的数组二分查找实现
- Windows Server 2003 密钥
- 实习一周了