简单Java,请大侠改正!!谢谢 - -

问题描述

代码如下:importjava.util.*;classViewMonth{intmonth;intyear;ViewMonth(finalintdisplayMonth,finalintdisplayYear){month=displayMonth;year=displayYear;}privateStringcheckMonth(){String[]months={//定义月的数组"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};returnmonths[month];}privateintcheckDays(){int[]numofDays={31,28,31,30,31,30,31,31,30,31,30,31//1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月};returnnumofDays[month];}/***使用此方法打印该月的日历.*/voidprintMonth(){/*将该月份起始处的天数留空.*/intinitialSpaces=0;try{/*获取月份名称.*/StringmonthName=checkMonth();System.out.println();System.out.println("ttt"+year+"年"+monthName);System.out.println();}catch(ArrayIndexOutOfBoundsExceptionae){System.out.println("超出范围..........");System.exit(0);}GregorianCalendarcal=newGregorianCalendar(year,month,1);System.out.println("t日t一t二t三t四t五t六");initialSpaces=cal.get(Calendar.DAY_OF_WEEK)-1;/*获取天数.*/intdaysInMonth=checkDays();/*检查是否为闰年并为二月增加一天.*/if(cal.isLeapYear(cal.get(Calendar.YEAR))&&month==1){++daysInMonth;}for(intctr=0;ctr<initialSpaces;ctr++){System.out.print("t");}for(intctr=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();}}classaa{privatevoidshuru(){/*intyear,month;Scannersc=newScanner(System.in);System.out.print("请输入年份:");year=sc.nextInt();Scannersca=newScanner(System.in);System.out.print("请输入月份:");month=sca.nextInt();if(month>12||month<1){System.out.println("输入非法月份~!请重新输入~!");shuru();}*/}publicstaticvoidmain(String[]args){//aaa=newaa();intmonth,year;Scannersc=newScanner(System.in);System.out.print("请输入年份:");year=sc.nextInt();Scannersca=newScanner(System.in);System.out.print("请输入月份:");month=sca.nextInt();if(month>12||month<1){System.out.println("输入非法月份~!请重新输入~!");}//a.shuru();if(args.length==2){System.out.println("显示日历");System.out.println();intmon=Integer.parseInt(args[0]);month=mon-1;year=Integer.parseInt(args[1]);}else{Calendartoday=Calendar.getInstance();month=today.get(Calendar.MONTH);year=today.get(Calendar.YEAR);}ViewMonthmv=newViewMonth(month,year);mv.printMonth();}}请问下一,怎么老是显示当前时间!还有,当输入错误月份时候,怎么返回重新输入月份。在线等或者QQ练习562162946

解决方案

解决方案二:
好像是万年历哦!可以去我博客看一下,有源码·http://blog.csdn.net/Hamber_Bao
解决方案三:
加个returnif(month>12||month<1){System.out.println("输入非法月份~!请重新输入~!");return;}
解决方案四:
这一段判断不对,注释掉就可以了//if(args.length==2){////System.out.println("显示日历");//System.out.println();////intmon=Integer.parseInt(args[0]);//month=mon-1;//year=Integer.parseInt(args[1]);////}//else{//System.out.println("不显示日历");//Calendartoday=Calendar.getInstance();//month=today.get(Calendar.MONTH);//year=today.get(Calendar.YEAR);//}
解决方案五:
对了,这里要改下month=sca.nextInt()-1;

时间: 2025-01-29 19:29:24

简单Java,请大侠改正!!谢谢 - -的相关文章

发布程序出错,请大侠帮助,谢谢非常感谢!!

问题描述 ////////////////////////////////////////////////////////////////错误2SignTool报告了一个错误"未能给binDebug微山县交通局综合管理平台.publish\setup.exe签名.SignToolError:ISignedCode::Signreturnederror:0x80880253Thesigner'scertificateisnotvalidforsigning.SignToolError:Anerro

这是一个java的crc16实现类,请大侠帮我翻译为c语言版

问题描述 这是一个java的crc16实现类,请大侠帮我翻译为c语言版 import java.util.zip.Checksum; public class CRC16Modbus implements Checksum { private static final int[] TABLE = { 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0

五子棋-请大侠帮助,提供思路,谢谢

问题描述 请大侠帮助,提供思路,谢谢 关于数组判断的问题,如何判断对角线上的数组是否是连续的,现在五子棋的判断遇到困难了 解决方案 虽然这是C语言写的,但是思路是一样的http://blog.csdn.net/mzlogin/article/details/5546204 解决方案二: 当前点,横坐标+1格并且纵坐标+1格或者横坐标-1格并且纵坐标-1格就是当前点的连续对角线点.

java请进,本人小白,这个很简单程序看不懂,单击事件。请帮我讲解一下,就是用AIDE开发的呜呜

问题描述 java请进,本人小白,这个很简单程序看不懂,单击事件.请帮我讲解一下,就是用AIDE开发的呜呜 解决方案 这是android/安卓,和java不是一回事-- 请会安卓的来解答吧 解决方案二: **首先上面的三个private是定义在本类里的私有对象. super.oncreate()方法是默认继承的. 下面的setContentView是将R下面的layout中的newone设为初始布局 三个this.XXX是将上面的对象进行初始化,要不会报空指针异常. btn是个按钮,你的代码是给

clone方法-Object的clone()方法为什么要存在?这个方法不是更简单吗?请指教,谢谢!

问题描述 Object的clone()方法为什么要存在?这个方法不是更简单吗?请指教,谢谢! 当我看到Object的clone方法时产生了一个问题: 为什么要用clone方法呢?我完全可以在该类中定义一个方法,在在该方法返回中返回一个该类本身的实例即可.就像下面这个例子: package excercise.inheritance; public class Override { public static void main(String[] args) { Chicken chicken=n

asp.net-从SQL数据库中获取数据写入WORD文档,请附加代码,谢谢

问题描述 从SQL数据库中获取数据写入WORD文档,请附加代码,谢谢 基本格式:数据写入时需按一定格式(写入内容包含表格.文字.图片).标题居中等等 标题(含字体) 一.内容1 1.******* 2.***** 二.内容二 (1)***** 三.表格(或图片) 解决方案 c#里有一个非常不错的类库 叫aspose 里面可以操作word插入各种html以及表单以及图片. 非常不错 建议LZ搜索下 有很多相关代码,不想搜索你可以Call我 我发给你就是了 解决方案二: 在bai度中搜"java导出

简单java在线测评程序

简单java程序在线测评程序 v一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. v二.思路 首先简单介绍一下思路: 1.得到java程序的源代码,不需要导入包.得到源码之后在前面加入"import java.util.*;" 2.通过JavaCompiler对象可以帮助我们将java源代码编译成class文件. 3.通过DiagnosticCollector对象可以获得编译过

c++ delphi 回调函数-关于C++调用delphi的问题,请大侠指教

问题描述 关于C++调用delphi的问题,请大侠指教 在使用VS2008,用C++写了一个类,这个类需要调用delphi中的一个函数,这个函数原型类似于 LONGINT f(lUserID:Longint;lChannel:LOngint; lpStartTime:LPTYL_DVR_TIME; lpStopTime:LPTYL_DVR_TIME; sSavedFileName:PChar; deCallback : TDVRDownLoadCallback; dwUser:DWORD),这里

mina 在发送长报文时,为什么被截成好几段呢。请大侠帮帮忙。

问题描述 mina在发送长报文时,为什么被截成好几段呢.请大侠帮帮忙. 解决方案 解决方案二:这个是必然的.物理限制,和mina无关.你使用的默认解码器或者自己写的解码器的一个功能,就是将可能的N个物理包,变成一个逻辑包.每个逻辑包,包头应当由标志位(这个逻辑包是什么数据)以及长度位(这个逻辑包长度是多少,个别固定长度的逻辑包,可以省略).每次,解码的时候,读取bytebuffer的头,看看当前解析的是什么包,然后长度是多少,再比较一下,当前的bytebuffer长度够不够,如果不够的话,则将b