1、日历需求
键盘录入两个数据
年份和月份
输出当月的日历图
提示:1900年1月1日为星期一
2、日历程序编写思路
1.因为1900年1月1日为星期一,所以我们从1900 1.1开始算
从当天开始到输出的总天数;
2.因为到现在的天数可以大致分为从1900年开始到现在的年
数乘以天数加上到当月的天数;
3.求1900到输入年的总天数;
4.求1月到输入月的天数;
5.应该得到输入月第一天为星期几;
6.得到当月的天数;
7.打印日历的格式;
8.打印日期(日期中打出为对齐的);
9.打印空格(要的到当月第一天与周几对齐);
3、日历代码
import java.util.Scanner;
public class Text02 {
public static void main(String[] args) {
//键盘录入你想要查看的月份
//1900年的1月为周一以此为起始
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份:");
int year=sc.nextInt();
System.out.println("请输入月份:");
int mouth=sc.nextInt();
//计算从1900年开始到year的天数
int allDayofyear=0;
for(int i=1900;i<year;i++){
//判断是否为润年
if(i%4==0 && i%100!=0 || i%400==0){
allDayofyear+=366;//闰年
}else {
allDayofyear+=365;//平年
}
}
//计算从1月到mouth月的天数
int allDayofMouth=0;
for(int i=1;i<=mouth;i++){
switch (i){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
allDayofMouth+=31;
break;
case 4: case 6: case 9: case 11:
allDayofMouth+=30;
break;
case 2:
if(i%4==0 && i%100!=0 || i%400==0){
allDayofMouth+=29;
}else {
allDayofMouth+=28;
}
}
}
//计算总天数,年的天数加上月的天数
int allDay=0;
allDay=allDayofMouth+allDayofyear+1;//加1是因为计算截至前一天,后一天没有加上,所以加1
System.out.println(allDay);
//计算星期
int week=0;
week=mouth%7;
System.out.println(week);
//计算输入的月份有多少天
int day=0;
switch (mouth){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day=31;
break;
case 4: case 6: case 9: case 11:
day=30;
break;
case 2:
if(mouth%4==0 && mouth%100!=0 || mouth%400==0){
day=29;
}else {
day=28;
}
}
//打印日历
System.out.println("---"+year+"年-"+mouth+"月---");
System.out.println("一\t二\t三\t四\t五\t六\t日");
int n=0;
//打印空格
for(int i=0;i<week;i++){
System.out.println("\t");
n++;
}
//打印日期
for(int i=1;i<=day;i++){
System.out.print(i+"\t");
n++;
}
System.out.println();
}
}
版权声明:本文为qq_58172483原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。