永发信息网

java大神求救!!

答案:3  悬赏:0  手机版
解决时间 2021-03-26 19:53
  • 提问者网友:流星是天使的眼泪
  • 2021-03-26 16:59
java大神求救!!
最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-03-26 17:25
按照你的要求编写的Java程序如下
import java.util.Calendar;
import java.util.Scanner;
public class JavaCalendar {
 public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  System.out.print("Enter full year(e.g.,2012):");
  int year=sc.nextInt();
  System.out.print("Enter month as a number between 1 and 12:");
  int month=sc.nextInt();
  CalendarBean cb = new CalendarBean();
  cb.setYear(year);
  cb.setMonth(month);
  String a[] = cb.getCalendar();
  String Month[] ={"January","February","March","April","May","June","July","August","September","October","November","December"};
  String str[] ={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
  System.out.println();
  System.out.printf("%20s
",Month[month-1]);
  System.out.println("-------------------------------------------");
  for(String c:str){
   System.out.printf("%5s",c);
  }
  System.out.println();
   for(int i=0;i   System.out.printf("%5s",a[i]);
   if((i+1)%7==0){
    System.out.println(); 
   }
  }
 }
}
class CalendarBean{
 int year = 0;
 int month = 0;
 public void setYear(int year){
  this.year = year;
 }
 public void setMonth(int month){
  this.month = month;
 }
 public String [] getCalendar(){
  String a[] = new String[42];
  Calendar calendar = Calendar.getInstance();
  calendar.set(year,month-1,1);
  int weekDay = calendar.get(Calendar.DAY_OF_WEEK)-1;
  int day = 0;
  if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
   day = 31;
  }
  if(month==4 || month==6 || month== 9 || month==11){
   day = 30;
  }
  if(month==2){
   if(year%4==0&&year%100 !=0 || year%400==0){
    day = 29;
   }
   else day = 28;
  }
  for(int i=0;i   a[i] ="";
  }
  for(int i=weekDay,n=1;i   a[i] = String.valueOf(n);
   n++;
  }
  for(int i=weekDay+day;i   a[i] = "";
  }
  return a;
 }
}运行结果

                                  

全部回答
  • 1楼网友:长青诗
  • 2021-03-26 18:11
你需求 弄明白了没有 这是关键追问记1年1月1日为星期一 显示给定的日历 程序提醒输入某年某月 然后显示整个月的日历


按照
周一 周二 周三 ……周六 周日的顺序显示不是周日 周一 周二……周五周六形式上面是我目前完成的部分 有错误请指正 谢谢🙏追答首先 你不管 那些需求 先按照
周一 周二 周三 ……周六 周日的顺序显示 出一个月份 一个一个出来就好了追问好哒 谢谢 我仔细看看我上面完成的部分有什么错误吗 请大神指点追答你是现在 只是在java控制台输出看看吗?那样的话 先面那个回答者的代码 你可以拿来借鉴一下,只是显示的顺序改一下
  • 2楼网友:酒安江南
  • 2021-03-26 17:57
import java.util.Calendar;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        int year, month;
        String[] week = {"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
        int start = 0;
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入年份:");
        year = scanner.nextInt();
        System.out.print("请输入月份:");
        month = scanner.nextInt();
        Calendar calendar = Calendar.getInstance();
        calendar.set(year,month-1,1);
        start = calendar.get(Calendar.DAY_OF_WEEK)-2;
        for (int i = 0; i < 7; i++) {
            System.out.print(" "+week[i]);
        }
        System.out.println();
        hey : for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 7; j++) {
                if (calendar.get(Calendar.MONTH) != month-1) {
                    break hey;
                }
                if(start-- > 0){
                    System.out.printf("    ");
                }else{
                    System.out.print(calendar.get(Calendar.DAY_OF_MONTH)>9?
                            "  "+calendar.get(Calendar.DAY_OF_MONTH):"  0"+calendar.get(Calendar.DAY_OF_MONTH));
                    calendar.add(Calendar.DAY_OF_MONTH,1);
                }
            }
            System.out.println();
        }
    }
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯