程序一:输入年月日,输出下一天是x年x月x日
代码:
Date类
import java.util.Scanner;
public class Date {
private int year;
private int month;
private int day;
public Date(int year, int month, int day) {
super();
this.year = year;
this.month = month;
this.day = day;
}
public Date(){}
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;
}
@Override
public String toString() {
return year+"年"+month+"月"+day+"日";
}
public void setDate(){
Scanner scan=new Scanner(System.in);
System.out.println("输入年月日:");
System.out.println("年");
int year=scan.nextInt();
System.out.println("月:");
int month=scan.nextInt();
System.out.println("日:");
int day=scan.nextInt();
this.year=year;
this.month=month;
this.day=day;
}
输出下一天的日期:
public void printDate(Date d){
if((d.year%4==0 && d.year%100!=0)|| d.year%100==0){
switch(d.month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if(day==31){
d.month++;day=1;
}else{
day++;
}
break;
case 2:
if(day==29){
d.month++;day=1;
}else{
day++;
}
break;
case 4:case 6:case 9:case 11:
if(day==30){
d.month++;day=1;
}else{
day++;
}
break;
}
}else{
switch(d.month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if(day==31){
d.month++;day=1;
}else{
day++;
}
break;
case 2:
if(day==28){
d.month++;day=1;
}else{
day++;
}
break;
case 4:case 6:case 9:case 11:
if(day==30){
d.month++;day=1;
}else{
day++;
}
break;
}
}
if(month>12){
d.year++;month=1;
}
}
TestDate类:
public class TestDate {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date=new Date();
date.setDate();
System.out.println(date);
date.printDate(date);
System.out.println("下一天:");
System.out.println(date);
}
}
运行结果:
程序二:输入年月日,判断这是这一年中的第几天。
代码:
计算今天是一年中的第几天:
public int countDay(Date d){
int sum=d.day;
if((d.year%4==0 && d.year%100!=0)|| d.year%100==0){
switch(d.month){
case 1:break;
case 2:sum+=31;break;
case 3:sum+=60;break;
case 4:sum+=91;break;
case 5:sum+=121;break;
case 6:sum+=152;break;
case 7:sum+=182;break;
case 8:sum+=213;break;
case 9:sum+=244;break;
case 10:sum+=274;break;
case 11:sum+=305;break;
case 12:sum+=335;break;
}
}else{
switch(d.month){
case 1:break;
case 2:sum+=31;break;
case 3:sum+=59;break;
case 4:sum+=90;break;
case 5:sum+=120;break;
case 6:sum+=151;break;
case 7:sum+=181;break;
case 8:sum+=212;break;
case 9:sum+=243;break;
case 10:sum+=273;break;
case 11:sum+=304;break;
case 12:sum+=234;break;
}
}
return sum;
}
}
Test类:
public class TestDate {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date=new Date();
date.setDate();
System.out.println(date);
int sum=date.countDay(date);
System.out.println("这是一年中的第"+sum+"天");
}
}
运行结果:
程序三:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class IntNum {
public static void main(String[] args) {
System.out.println("请输入你要分解的数:(分解因数)");
Scanner scan = new Scanner(System.in);
int num=scan.nextInt();
analyseInt(num);
}
//分解因数的方法
public static void analyseInt(int num){
int j=0;
System.out.print(num+"=");
int []array=new int[num];
for(int i=2;i<=num;i++){
if(num%i==0){
num/=i;
array[j++]=i;
--i;
}
}
for(int i=0;i<array.length;i++){
System.out.print(array[i]);
if(array[i+1]==0) break;
System.out.print("*");
}
}
}
运行结果:
程序四:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
代码:
import java.util.Scanner;
public class AddNum {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入要相加的数:");
Scanner scan = new Scanner(System.in);
int add=scan.nextInt();
System.out.println("请输入要相加的次数");
int count=scan.nextInt();
int sum=sumNum(add, count);
System.out.println(sum);
}
//相加的方法,其中Math.pow(10,count-1)求10的N次方
public static int sumNum(int add,int count){
int sum=0;
for(int i=count;i>=1;i--){
sum= sum+add*i*(int)(Math.pow(10, count-i));
}
return sum;
}
}
运行结果: