java计算时针和分针之间的夹角

作者在 2006-12-12 04:50:00 发布以下内容

//计算时针和分针之间的夹角
import java.lang.Math;
public class ClockAngle {
 public static void main(String[] args) {
  final String time="12:37";//此处可任意填写时间
  int index=time.indexOf(":");//找到:的位置
  if(index==-1)return;//如果不存在:则直接退出
  String strHour=time.substring(0,index);//截取小时数-字符串型
  String strMinute=time.substring(index+1,time.length());//截取分钟数-字符串型
  if(!checkIsNum(strHour)||!checkIsNum(strMinute))return;//如果不符合时间格式,直接退出
  double hour=Double.parseDouble(strHour);//截取小时数
  double minute=Double.parseDouble(strMinute);//截取分钟数
  if(hour<0||hour>24||minute<0||minute>59)return;//如果小时数或分钟数,不在时间范围内,直接退出
  if(hour>12)hour=hour-12;
  double hourAngle=360/12*(hour+minute/60);//计算此时的时针与12点整时时针位置的夹角
  double minuteAngle=360*(minute/60); //计算此时的分针与12点整时分针位置的夹角
  double angle = Math.abs(hourAngle-minuteAngle);//两个结果相减的绝对值即为结果(注意,此处有可能大于180度)
  double result=angle>180?360-angle:angle;//如果大于180则与360度求差得到最后结果
  System.out.println("当时间是 "+time+" 时,时针和分针之间的夹角是 : "+result+" 度");
 }
 public static boolean checkIsNum(String temp){
  for(int i=0;i<temp.length();i++){
   if(!Character.isDigit(temp.charAt(i)))
    return false;
  }
  return true;
 }

}

默认分类 | 阅读 4963 次
文章评论,共0条
游客请输入验证码
文章分类
最新评论