您的位置:首页 > 编程语言 > Java开发

java程序设计一个日历,不用封装的类的程序

2016-08-25 08:34 330 查看
public class Calendar {

public static void main(String[] args) {
int newYear = 0;//输入的年份
int newMounth = 0;//输入的月份
int newDay = 0;//输入的号
int yearOfDaySum =0;//输入的那一年离1900年有几天
int mounthOfDaySum=0;//输入的那一个月份离输入的年份的一月一日有几天
int dayOfDaySum =0;//离1900年一月一日有多少天
int dayOfWeek = 0;//输入的那一天是星期几
int mounthOfWeek=0;//输入的哪一个月的一号是星期几
int day = 0;//输入的那个月的天数

String[]  dayArr = new String[42];
String[] week ={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
Scanner mScanner = new Scanner(System.in);

System.out.println("请输入年份:范围(1900~)");
newYear = mScanner.nextInt();
System.out.println("请输入月份:范围(1~12)");
newMounth = mScanner.nextInt();
System.out.println("请输入哪号:范围(1~31)");
newDay = mScanner.nextInt();

//计算输入的那一年离1900年有几天
for (int i = 1900; i < newYear; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
yearOfDaySum += 366;
}else {
yearOfDaySum +=365;
}
}

//计算输入的那一个月份离输入的年份的一月一日有几天
for (int i = 1; i < newMounth; i++) {
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10
|| i == 12) {
mounthOfDaySum += 31;
}

if (i == 4 || i == 6 || i == 9 || i == 11) {
mounthOfDaySum += 30;
}

if (i == 2) {
if ((newYear % 4 == 0 && newYear % 100 != 0) || newYear % 400 == 0) {
mounthOfDaySum += 29;
} else {
mounthOfDaySum += 28;
}
}
}

dayOfDaySum = yearOfDaySum + mounthOfDaySum + newDay-1;//计算离1900年一月一日有多少天;
dayOfWeek = (dayOfDaySum+1) % 7 ;//计算输入的那一天是星期几;为什么加1 是从1900年一月一日的前一天算起就是周日开始算
mounthOfWeek = (yearOfDaySum + mounthOfDaySum+1) % 7 ;//计算输入那一天的哪一个月的1号是星期几;

//判断输入的那个月的天数
if (newMounth == 2) {
if((newYear % 4 == 0 && newYear % 100 != 0)||newYear % 400 == 0){
day = 29;
}else {
day = 28;
}
}else if(newMounth==4 ||newMounth==6 ||newMounth==9 ||newMounth==11 ){
day = 30;
}else {
day = 31;
}

for (int i = 0; i < dayArr.length; i++) {
dayArr[i] = "";
}

for (int i = 0; i < day; i++) {
dayArr[i+mounthOfWeek] =(i+1)+"";
}

System.out.println(newYear+"年"+newMounth+"月"+" 离1900年一月一日有:"+(mounthOfDaySum+yearOfDaySum)+" 天");
System.out.println(newYear+"年"+newMounth+"月"+newDay+"日 离1900年一月一日有:"+dayOfDaySum+" 天");
System.out.println(newYear+"年"+newMounth+"月"+newDay+"日 是:"+week[dayOfWeek]);
System.out.println(newYear+"年"+newMounth+"月1号 是:"+week[mounthOfWeek]);
System.out.println("************************************************************");
System.out.println(newYear+"年"+newMounth+"月");
System.out.println("************************************************************");
for (int i = 0; i < week.length; i++) {
System.out.print(week[i]+"\t");
}

System.out.println();

//输出那个月的排列情况
for (int i = 0; i < dayArr.length; i++) {
if (i % 7 == 0 && i != 0) {
System.out.println();
}
System.out.print(dayArr[i]+"\t");
}

mScanner.close();
}


打印输出用的是一个数组,还可以用for循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 日历