Java试题求解

1.求和S=12-32+52-72+92-...(共50项,直接在main方法中写程序)。2.写一个日期类Date,有year、month和day三个数据域,都是int型... 1.求和S=12-32+52-72+92-...(共50项,直接在main方法中写程序)。
2.写一个日期类Date,有year、month和day三个数据域,都是int型,要求:
(1)数据域封装,写出它们的访问器和修改器;
(2)两个构造方法,一个是无参数默认的日期是1900.01.01,另一个是带参数的;
(3)写一个run方法,增加一天;
(4)写一个output方法,以格式“今天是XXXX年XX月XX日”的格式输出日期。
最后,在main方法中测试该类,创建一个对象ddd,初始值为2018年7月28日,用方法rum运行100天,然后用output方法输出第100天。
展开
 我来答
德艺双馨520920
2018-11-26 · TA获得超过653个赞
知道小有建树答主
回答量:798
采纳率:92%
帮助的人:243万
展开全部

你好提问者:

如果解决了你的问题请采纳,若有疑问请追问,谢谢!

第一题:
package com.zyx.cn.baidu_test.day1;
/**
 * 求和S=1^2-3^2+5^2-7^2+9^2-...(共50项,直接在main方法中写程序)
 * @author yltd
 *
 */
public class HundredUnevenNumber {
public static void main(String[] args) {
int cont =0;
int number =0;
//查询一百以内的奇数:不能被2整除
for( int i=1 ; i<=100 ; i++ ){
            if(i%2 != 0){   //不能被2整除
             cont++;
                if(cont%2 !=0){
            number = number + i*i;
                }else{
                  number = number - i*i;
                }
            }
        }
System.out.println("共计:"+cont);
System.out.println("和:"+number);
}
}
结果:
共计:50
和:-5000
第二题:
package com.zyx.cn.baidu_test.day1;
/**
 * 写一个日期类Date,有year、month和day三个数据域,都是int型,要求:
(1)数据域封装,写出它们的访问器和修改器;
(2)两个构造方法,一个是无参数默认的日期是1900.01.01,另一个是带参数的;
(3)写一个run方法,增加一天;
(4)写一个output方法,以格式“今天是XXXX年XX月XX日”的格式输出日期。
最后,在main方法中测试该类,创建一个对象ddd,初始值为2018年7月28日,用方法rum运行100天,然后用output方法输出第100天。
 * @author yltd
 *
 */
public class DateTest {
public static void main(String[] args) {
NewDate ddd =new NewDate(2018,7,28);
NewDate aaa = ddd.run(ddd,100);
aaa.output(aaa);
}
}
class NewDate{
private int year;
private int month;
private int day;
// getXXX/setXXX
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
//无参构造方法:1900.01.01
NewDate(){
setYear(1900);
setMonth(01);
setDay(01);
System.out.println(getYear()+"."+getMonth()+"."+getDay());
}
//带参构造方法
NewDate(int year,int month,int day){
setYear(year);
setMonth(month);
setDay(day);
System.out.println(getYear()+"."+getMonth()+"."+getDay());
}
//加number天
NewDate run(NewDate date,int number){
int year =date.getYear();
int month=date.getMonth();
int day=date.getDay();

for (int i = 0; i < number; i++) {
if(year%4 ==0){//闰年
if(month ==2){//2月
if(day<28){
day = day+1;
}else if(day==28){
day =1;
month = month+1;
}
}
}else{//平年
if(month ==2){//2月
if(day<29){
day = day+1;
}else if(day==29){
day =1;
month = month+1;
}
}
}
//大小月天数
if(month ==1||month ==3||month ==5||month ==7||month ==8||month ==10||month ==12){//31天的月份
if(day<31){
day = day+1;
}else if(day ==31){
day =1;
if(month ==12){//如果是12月的最后一天
year =year+1;
month =1;
}else{
month = month+1;
}
}
}else{//30天的月份
if(day<30){
day = day+1;
}else if(day ==30){
day =1;
month = month+1;
}
}
}
System.out.println(year+"==="+month+"==="+day);
NewDate newDate =new NewDate(year,month,day);
return newDate;
}
//输出
 void output(NewDate newDate) {
System.out.println("今天是"+newDate.getYear()+"年"+newDate.getMonth()+"月"+newDate.getDay()+"日");
}
}
结果:
2018.7.28
2018===11===5
2018.11.5
今天是2018年11月5日
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式