黑马程序员技术交流社区
标题:
输入时间,计算时针和分针夹角
[打印本页]
作者:
blensmile
时间:
2015-10-27 23:34
标题:
输入时间,计算时针和分针夹角
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 + "°");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2