永发信息网

JAVA写一个单间日历问题

答案:5  悬赏:0  手机版
解决时间 2021-02-07 10:24
import java.util.Date;
import java.util.Scanner;
public class rili {
public static void main(String[] args) {
System.out.println("日历");
Scanner input=new Scanner(System.in);
System.out.println("请输入年份:");
int year=input.nextInt();
System.out.println("请输入月份:");
int month=input.nextInt();
boolean isRun=false;
if((year%4==0&&year%100!=0)||(year%400==0)){
isRun=true;
}else{
isRun=false;
}
if(isRun){
System.out.println(year+"年为闰年");
}else{
System.out.println(year+"年为平年");
}
int days=0;
switch(month){
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(isRun){
days=29;
}else{
days=28;
}
}
System.out.println(year+"年"+month+"月有:"+days+"天");
int totaldays=0;
for(int i=1991;i if((i%4==0&&year%100!=0)||(year%400==0)){
totaldays+=366;
}else{
totaldays+=365;
}
}
System.out.println("从1991.2.11到"+(year-1)+"的12.31日总共有:"+totaldays+"天");
int weekday=(totaldays+1)%7;
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for(int i=0;i System.out.println("\t");
}
for(int i=1;i<-days;i++){
System.out.println(i+"\t");
if((i+weekday)%7==0){
System.out.println();
}
}
}
}

我现在做了这么多

输出的结果是:
===============================

日历
请输入年份:
2005
请输入月份:
6
2005年为平年
2005年6月有:30天
从1991.2.11到2004的12.31日总共有:5114天
星期天 星期一 星期二 星期三 星期四 星期五 星期六
===============================
没有具体当月的日期,我觉得是没有设置起始日期,还少一个日期的for循环。求大神帮忙解决存在问题,具体改怎样解决?在线等。
最佳答案
自己写得话,的确要设立一个起始日期,比如1900 1 0日,星期几,然后才能算出当前月的日期,不过我觉得没啥必要,直接用Calendar类啊,多方便
全部回答
你是要算出某段时间内星期天、一、二...各为多少天还是?
import java.util.*; class viewmonth { int month; int year; viewmonth(final int displaymonth, final int displayyear) { month = displaymonth; year = displayyear; } private string checkmonth() { string[] months = { "1 月" , "2 月" , "3 月", "4 月" , "5 月" , "6 月", "7 月" , "8 月" , "9 月", "10 月" , "11 月" , "12 月" }; return months[month]; } private int checkdays() { int[] numofdays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; return numofdays[month]; } void printmonth() { int initialspaces = 0; try { string monthname = checkmonth(); system.out.println(); system.out.println("\t\t\t " + year + " 年 " + monthname ); system.out.println(); } catch (arrayindexoutofboundsexception ae) { system.out.println("超出范围 .........."); system.exit(0); } gregoriancalendar cal = new gregoriancalendar(year, month, 1); system.out.println("\t日\t一\t二\t三\t四\t五\t六"); initialspaces = cal.get(calendar.day_of_week) - 1; int daysinmonth = checkdays(); if (cal.isleapyear(cal.get(calendar.year)) && month == 1) { ++daysinmonth; } for (int ctr = 0; ctr < initialspaces; ctr++) { system.out.print("\t"); } for (int ctr = 1; ctr <= daysinmonth; ctr++) { if (ctr <= 9) { system.out.print(" "); } system.out.print("\t" + ctr); if ((initialspaces + ctr) % 7 == 0) { system.out.println(); } else { system.out.print(" "); } } system.out.println(); } } class j7上机2 { protected j7上机2() { } public static void main(string[] args) { int month, year; if (args.length == 2) { system.out.println("显示日历"); system.out.println(); int mon = integer.parseint(args[0]); month = mon - 1; year = integer.parseint(args[1]); } else { calendar today = calendar.getinstance(); month = today.get(calendar.month); year = today.get(calendar.year); } viewmonth mv = new viewmonth(month, year); mv.printmonth(); } }
你不是想把这5114天的日期都循环出来吧,比如1991年2月11号是周几 12号是周几 13号是周几。。。一直到2005年6月30号是周几。
for(int i=1;i<-days;i++){ 这一行,i<-days,一定是FALSE,输出日期的这一循环不会执行。另外,直接这一输出会很难看,建议改为: for(int i=1;i<=days;i++){ System.out.println(“ ”+i+" \t");//数字前后加两个空格 if((i+weekday)%7==0){ System.out.println(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广兴通二手车有限公司地址在什么地方,我要处
城垣东路怎么去啊,有知道地址的么
农村信用社的e宝,在电脑上和支付宝账号关联
一般橱柜台面做多宽?
语文报读后感,400字以上,急需!!!
50岁的祝福语怎样说
河源市汇源汽车销售有限公司龙川分公司地址在
您的win7 x64能玩cf!怎么安装?
江苏中兴建设有限公司我想知道这个在什么地方
喝红豆薏仁水容易出汗?
胡椒粒如果起霉了还可以用吗
河源市新博通汽车有限公司龙川分公司怎么去啊
请问谁知道一般什么时候回收金边土元的?
临淄区个体私营企业协会朱台分会地址在什么地
左心衰竭最早出现的症状是A.劳力性呼吸困难B.
推荐资讯
锦程物流公司地址在什么地方,想过去办事
您好,请问微信扫码怎么没反应?
丰城市殡葬管理所公墓管理办公室怎么去啊,我
74乘以9=? 数学
词即歌词,又叫( ),()。词是兴于__,成熟
怎样阻止成人夹腿综合症
洛宁县城东区社区卫生服务站地址在哪,我要去
以下属按相克规律确定的治法是A.培土生金B.益
AILI爱的礼物(宁大店)地址有知道的么?有点事
【中秋来源】中秋来历作文
“自然界没有不凋谢的花,人世间没有无曲折的
(  )以工作中的实际情况为基础,将实际工
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?