永发信息网

用java设计一个2016年7月的日历

答案:1  悬赏:80  手机版
解决时间 2021-03-01 01:24
  • 提问者网友:动次大次蹦擦擦
  • 2021-02-28 15:37
用java设计一个2016年7月的日历
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-02-28 15:58
你的Java日历程序我帮你改好了,你看看吧.(改动的地方见注释)
import java.util.*;
public class JavaApplication17{
 public static void main(String[] args) {
 ClendarBean cb = new ClendarBean();
 cb.setMonth(2016);
 cb.setMonth(11);
 String a[] = cb.getCalendar();
 char str[] ="日一二三四五六".toCharArray();
 for(char c:str){
 System.out.printf("%7c",c);//这里改一下"%3c"改成"%7c"
 }
 System.out.println();//这里加一句换行
 
 for(int i=0;i  System.out.printf("%3s",a[i]);//这里"%3c"改成"%3s"并移到这里
  if((i+1)%7==0){//这里i%7==0改成(i+1)%7==0
   System.out.println(); 
  }
 }
 }
}
class ClendarBean{
 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[45];
 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+1,n=1;i a[i] = String.valueOf(n);
 n++;
 }
 for(int i=weekDay+day+1;i a[i] = "";
 }
 return a;
}
}运行结果

追问为什么weekDay+day要加一啊追答因为weekDay是从0开始的,ClendarBean类getCalendar函数第一个for-i循环,从0到weekDay-1(因为i以11月为例,weekDay=1,原来的循环从0到i
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯