做一个java日历,只输入年份,然后输入这一年一月一号是星期几,就可以直接输出这一年的日历,求解

做一个java日历,只输入年份,然后输入这一年一月一号是星期几,就可以直接输出这一年的日历,求解,第1张

import javaio;

public class Leap

{

static void put(String s)

{

Systemoutprintln(s);

}

static int getWeekNum(int y,int m, int d)

{

int w;

if(m==1||m==2)

{

y--;

m=m+12;

}

w=(d+2m+3(m+1)/5+y+y/4-y/100+y/400)%7+1;

return w;

}

static int getNum(int y,int m,int d)

{

int []list={31,0,31,30,31,30,31,31,30,31,30,31};

int sum=0;

for(int i=0;i!=m-1;i++)

sum+=list[i];

if(m>=3)

sum+=(((y%100==0)||(y%100!=0&&y%4==0))29:28);

sum+=d;

return sum;

}

static int getMonthDay(int y,int m)

{

switch(m)

{

case 2:

if((y%100==0)||(y%100!=0&&y%4==0))

return 29;

else

return 28;

case 4:

case 6:

case 9:

case 11:

return 30;

default:

return 31;

}

}

public static void main(String []args)

{

BufferedReader rd=new BufferedReader(new InputStreamReader(Systemin),1);

int y,m,d,i,j;

int[][] list=new int[6][7];

for(i=0;i!=6;i++)

{

for(j=0;j!=7;j++)

list[i][j]=0;

}

put("please enter a date:[YYYY MM DD]");

try{

y=IntegerparseInt(rdreadLine());

m=IntegerparseInt(rdreadLine());

d=IntegerparseInt(rdreadLine());

put("当年第"+getNum(y,m,d)+"日");

put("日 一 二 三 四 五 六");

j=getWeekNum(y,m,d);

int md=getMonthDay(y,m);

for(i=j;i!=md+j;i++)

list[i/7][i%7]=i-j+1;

for(i=0;i!=6;i++)

{

for(j=0;j!=7;j++)

if(list[i][j]!=0)

Systemoutprintf("%-3d",list[i][j]);

else

Systemoutprint(" ");

put("");

}

}catch(IOException ex){}

}

}

importjavatext;importjavautil;publicclassTest36{publicstaticvoidmain(String[]args){try{SimpleDateFormatfarmatter=newSimpleDateFormat("yyyy-MM-dd");Dated1,d2;intyear,month;Stringtemp;Scannerscan=newScanner(Systemin);Systemoutprint("请输入一个年月值\n年份:");year=scannextInt();Systemoutprint("月份:");month=scannextInt();MyCalendarlistCalendar(year,month);Systemoutprint("请输入一个日期(yyyy-MM-dd):");temp=scannext();d1=farmatterparse(temp);Systemoutprintln(d1toLocaleString()+"是"+MyCalendargetDayOfWeek(d1));Systemoutprint("请输入两个日期(yyyy-MM-dd)\n");Systemoutprint("日期1:");temp=scannext();d1=farmatterparse(temp);Systemoutprint("日期2:");temp=scannext();d2=farmatterparse(temp);intdiff=MyCalendardateDiff(d1,d2);Systemoutprintf("%s和%s之间相隔%d天\n",d1toLocaleString(),d2toLocaleString(),diff);}catch(Exceptione){eprintStackTrace();}}}classMyCalendar{//1)用户输入一个年份和月份,程序输出这个月的月历,每星期一行,星期天开始,星期六结束。publicstaticvoidlistCalendar(intyear,intmonth){if(month12){Systemoutprintln(month+"是非法的月份值,它的有效范围是1~12");return;}Systemoutprintln(""+year+"-"+month);Systemoutprintln("---------------------------");Systemoutprintf("%4s%4s%4s%4s%4s%4s%4s\n","Sun","Mon","Tue","Wed","Thu","Fri","Sat");try{Calendarc=CalendargetInstance();cset(year,month-1,1);intnum=getDays(year,month);//本月天数inti;for(i=0;iy2){for(i=y2;i

//1将字符串用split切割得到年月日组成的数组 String s2="2011-11-11 11:11:11";//2Calendar对象的获得,abstract并且构造函数是protected //本地时区和本地的习惯,系统日期 Calendar calendar=CalendargetInstance();//3将Calendar转换成输入的日期 用calendar对象的set(Calendar对应常量(如YEAR等),输入的对应值)方法设值//4获得判断用的值 //获得年份 int year=calendarget(CalendarYEAR); //获得这个月最多的天数 int maxDay=todaygetActualMaximum(CalendarDATE); //获得当前日期是一周中的第几天,注意这个数不代表星期几而是你电脑上日历的第几列 int weekDay=calendarget(CalendarDAY_OF_WEEK); }好了就这么多吧,有这些差不多了,还有什么继续问哈

以上就是关于做一个java日历,只输入年份,然后输入这一年一月一号是星期几,就可以直接输出这一年的日历,求解全部的内容,包括:做一个java日历,只输入年份,然后输入这一年一月一号是星期几,就可以直接输出这一年的日历,求解、在java中怎么实现日历从一月到十二月依次展开、怎样利用java程序输出一个系统日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10120179.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存