Java用小程序实现“你来到这个世界多少天”简易版代码

本文介绍如何使用Java通过Scanner接收用户输入的日期字符串(格式yyyy/mm/dd),将其转换为Date对象,然后计算并输出到世界的时间长度。过程中涉及异常处理和日期格式转换。

题目要求:

 1、从键盘接收字符串日期信息,并按照Date类型保存,要求日期格式为XXXX/XX/XX的格式录入,按照XXXX年XX月XX日的格式输出。

  2、算一下你来到这个世界多少天?

程序设计思想:

1、用键盘接受字符串需要用到Scanner类。这里可以直接用类名创建对象,实现对此方法的引用,使用对象调用nextLine()方法,对从键盘录入的信息进行扫描,

2、对数据进行封装;

3、使用try catch语句将程序执行中可能会出现的异常抛出;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DateDemo {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入您的生日:yyyy/mm/dd");
	String s=sc.nextLine();//从输入信息扫描int型数据
	SimpleDateFormat  s1=new SimpleDateFormat("yyyy/mm/dd");
	Date birthday ;
	try{
		birthday = s1.parse(s);
		Date date =new Date();
		long time = date.getTime()-birthday.getTime();
		System.out.println("您已经来到这个世界"+time/1000/60/60/24+"天。");
	}catch (ParseException e){
		e.printStackTrace(); 
		System.out.println("输入的格式不正确,请重新输入");
	}
	
}
}

 

### 使用Java编写简单游戏 #### 猜数字小游戏示例 下面展示了一个利用Java编写的简易猜数字游戏。该游戏会随机生成一个介于1到100之间的整数,玩家通过键盘输入猜测数值直到找到正确答案。 ```java import java.util.Random; import java.util.Scanner; public class GuessNumberGame { public static void main(String[] args) { Random random = new Random(); Scanner scanner = new Scanner(System.in); int numberToGuess = random.nextInt(100) + 1; boolean hasGuessedCorrectly = false; System.out.println("欢迎来到猜数字游戏!"); while (!hasGuessedCorrectly) { System.out.print("请输入您认为的数字 (1-100): "); int guess = scanner.nextInt(); if (guess < numberToGuess) System.out.println("太低了,请再试一次."); else if (guess > numberToGuess) System.out.println("太高了,请再试一次."); else { System.out.println("恭喜你!成功猜到了数字:" + numberToGuess); hasGuessedCorrectly = true; } } scanner.close(); } } ``` 此段代码实现了基础逻辑结构包含了用户交互功能[^1]。 #### 推箱子小游戏框架 对于更复杂一点的游戏比如推箱子,则可以采用面向对象的方式设计各个组件如地图、人物等。以下是简化版本的一部分源码: ```java class Sokoban { char[][] map = {{'H', ' ', ' ', '*', 'H'}, {'H', '&', 'O', ' ', 'H'}, {'H', 'H', 'H', 'H', 'H'}}; // 打印当前状态的地图 void printMap(){ for(char[] row : map){ for(char cell : row){ System.out.print(cell); } System.out.println(); } } // 移动函数... } // 主程序入口点 public class Main{ public static void main(String[]args){ Sokoban game = new Sokoban(); game.printMap(); // 这里省略了处理用户输入以及更新游戏状态的部分 } } ``` 这段代码展示了如何定义二维字符数组作为地图布局,提供了打印地图的方法[^4]。 #### 创建自定义游戏角色 当涉及到角色扮演类型的小型项目时,可以通过继承机制扩展基类`Role`来创建特定的角色特性。例如魔法师(`Magicer`)拥有基于其等级计攻击力的能力。 ```java abstract class Role { protected String name; abstract void setName(String n); abstract String getName(); } class Magicer extends Role { private int level; @Override void setName(String n){ this.name=n; } @Override String getName(){ return this.name; } public void setLevel(int l){ this.level=l; } public int getLevel(){ return this.level; } // 创建一个法师伤害方法,伤害为等级的5倍 public int attack() { return level * 5; } @Override public String toString(){ return "Magicer={" + super.toString() +" Level=" + level + "}"; } } ``` 上述片段说明了怎样建立一个具有特殊属性和行为的新实体[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值