java实现简单年龄计算器
作者:纳兰那些事儿 时间:2022-01-28 02:23:34
本文实例为大家分享了java实现简单年龄计算器的具体代码,供大家参考,具体内容如下
制作一个如下图年龄计算器
根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图:
package com.Date;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class AgeCounts extends JFrame implements ActionListener {
JTextField text1, text2;
public static String str = "";
public static void main(String[] args) {
new AgeCounts();
}
public AgeCounts() {
JFrame mywindow = new JFrame();
mywindow.setTitle("年龄计算1.0版");
mywindow.setSize(400, 70);
mywindow.setLocation(350, 300);
mywindow.setResizable(false);
mywindow.setLayout(new FlowLayout());
JLabel lab = new JLabel("生日 :");
mywindow.add(lab);
text1 = new JTextField("", 10);
text2 = new JTextField("", 10);
mywindow.add(text1);
JButton btn = new JButton("计算");
mywindow.add(btn);
btn.addActionListener(this);
mywindow.add(text2);
text2.setEditable(false);
mywindow.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
boolean f = true;
str = text1.getText();
StringTokenizer st = new StringTokenizer(str, " ");
int myYear, myMonth, myDay;
try {
myYear = Integer.parseInt(st.nextToken());
myMonth = Integer.parseInt(st.nextToken());
myDay = Integer.parseInt(st.nextToken());
if (myMonth > 12 || myMonth < 1) {
f = false;
text2.setText("日期错误");
}
if (myDay > 31 || myDay < 1) {
f = false;
text2.setText("日期错误");
}
if (myYear < 0) {
f = false;
text2.setText("日期错误");
}
if (f) {
getAge(myYear, myMonth, myDay);
}
} catch (Exception e1) {
text2.setText("日期格式错误");
}
}
// 年龄计算函数
public void getAge(int year, int month, int day) {
boolean b = true;
Calendar cal = Calendar.getInstance();
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH) + 1;
int dayNow = cal.get(Calendar.DAY_OF_MONTH);
int years, months = 0, days = 0;
if (dayNow < day) {
dayNow = dayNow + 30;
monthNow = monthNow - 1;
}
if (monthNow < month) {
monthNow = monthNow + 12;
yearNow = yearNow - 1;
}
if (yearNow < year) {
b = false;
text2.setText("你还没有出生哟");
}
if (b) {
years = yearNow - year;
months = monthNow - month;
days = dayNow - day;
String result = years + "岁零" + months + "个月" + days + "天";
text2.setText(result);
}
}
}
结果截图:
更多计算器功能实现,请点击专题: 计算器功能汇总 进行学习
关于Android计算器功能的实现,查看专题:Android计算器 进行学习。
来源:https://www.cnblogs.com/wangxiuheng/p/4438159.html
标签:java,计算器
0
投稿
猜你喜欢
C#中使用split分割字符串的几种方法小结
2023-06-18 17:23:21
java实现简单斗地主(看牌排序)
2023-09-12 14:42:40
Java后台线程操作示例【守护线程】
2023-11-25 01:35:44
Java 异常的栈轨迹(Stack Trace)详解及实例代码
2023-12-13 12:19:02
Opencv光流运动物体追踪详解
2023-06-21 11:55:31
Spring运行时动态注册bean的方法
2023-11-25 04:16:58
自定义类加载器以及打破双亲委派模型解析
2023-06-22 22:03:59
常用Maven库,镜像库及maven/gradle配置(小结)
2023-11-20 23:44:00
springMVC利用FastJson接口返回json数据相关配置详解
2023-02-24 10:51:58
Java实例讲解动态代理
2023-03-21 22:56:45
Android RecyclerView使用ListAdapter高效刷新数据的操作方法
2023-06-24 22:22:09
Java使用备忘录模式实现过关类游戏功能详解
2022-11-30 08:52:51
Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)
2023-01-05 13:49:34
SpringBoot v2.2以上重复读取Request Body内容的解决方案
2022-06-27 11:00:16
java控制台输出图书馆管理系统
2022-06-13 01:29:29
用Flutter开发自定义Plugin的方法示例
2023-07-05 00:19:40
详解java构建者模式Builder
2021-11-16 18:49:32
举例讲解Java中synchronized关键字的用法
2023-07-01 22:20:19
MyBatis-Plus联表查询以及分页代码实例
2023-11-26 01:51:32
SpringBoot集成Beetl后统一处理页面异常的方法
2023-11-10 19:57:55