- import java.util.Scanner;
- public class Angle {
- public static void main(String[] args) {
-
- while(true)
- clockangle();
- }
-
- /**
- * 分针每秒走360/60=6°,时针每分钟走360/12/60=0.5°
- * 输入时间:xx.xx
- * 2015.10.26
- **/
- public static void clockangle(){
-
- //创建输入对象并提示输入
- //对输入的字符串进行转换和判断
- //计算时针角度,最后得到小的那个夹角
-
- Scanner sc = new Scanner(System.in);
- System.out.println("please input clock as follow: xx.xx");//温馨的提示
- String t = sc.nextLine();
- String[] ts = t.split("\\."); //使用"."作为分割符号
- int hour,minute;
-
- try{
- hour = Integer.parseInt(ts[0]);
- minute = Integer.parseInt(ts[1]); //提取出数据,转换为数字
- }catch(Exception a){
- System.out.println("input erro"); //温馨提示输入错误
- return;
- }
-
- if((hour>24||hour<0)&&(minute>60||minute<0)){ //判断是否在范围以内
- System.out.println("input erro"); //温馨的提示
- return;
- }
- hour = hour%12; //保证一圈是12小时,温馨的解决了12-24这个时间段
- float angleH = hour*30+minute*0.5f; //根据注释里面的计算,嗯,应该是这样的
- float angleM = minute*6;
- float angle = Math.abs(angleM-angleH); //取得angle
- if(angle>180) //angle>180°说明夹角大了,取另一面
- angle = 360-angle;
- System.out.println(angle + "°");
- }
- }
复制代码
|