A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.Scanner;

  2. public class Angle {

  3.         public static void main(String[] args) {
  4.                
  5.                 while(true)
  6.                         clockangle();               
  7.         }
  8.        
  9.         /**       
  10.          *  分针每秒走360/60=6°,时针每分钟走360/12/60=0.5°
  11.          *        输入时间:xx.xx
  12.          *        2015.10.26
  13.         **/
  14.         public static void clockangle(){
  15.                
  16.                 //创建输入对象并提示输入
  17.                 //对输入的字符串进行转换和判断
  18.                 //计算时针角度,最后得到小的那个夹角
  19.                
  20.                 Scanner sc = new Scanner(System.in);
  21.                 System.out.println("please input clock as follow: xx.xx");//温馨的提示
  22.                 String t = sc.nextLine();
  23.                 String[] ts = t.split("\\.");                        //使用"."作为分割符号
  24.                 int hour,minute;
  25.                
  26.                 try{
  27.                         hour = Integer.parseInt(ts[0]);
  28.                         minute = Integer.parseInt(ts[1]);        //提取出数据,转换为数字
  29.                 }catch(Exception a){       
  30.                         System.out.println("input erro");        //温馨提示输入错误
  31.                         return;
  32.                 }
  33.                
  34.                 if((hour>24||hour<0)&&(minute>60||minute<0)){        //判断是否在范围以内
  35.                         System.out.println("input erro");                        //温馨的提示
  36.                         return;
  37.                 }
  38.                 hour = hour%12;                //保证一圈是12小时,温馨的解决了12-24这个时间段
  39.                 float angleH = hour*30+minute*0.5f;                //根据注释里面的计算,嗯,应该是这样的
  40.                 float angleM = minute*6;
  41. float angle = Math.abs(angleM-angleH);        //取得angle
  42.                 if(angle>180)                                                        //angle>180°说明夹角大了,取另一面
  43.                         angle = 360-angle;

  44.                 System.out.println(angle + "°");
  45.         }
  46. }
复制代码


评分

参与人数 1黑马币 +3 收起 理由
耀阳圣尊 + 3

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马