java实现简单年龄计算器

作者:纳兰那些事儿 时间:2022-01-28 02:23:34 

本文实例为大家分享了java实现简单年龄计算器的具体代码,供大家参考,具体内容如下

制作一个如下图年龄计算器

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);
}
}

}

结果截图:

java实现简单年龄计算器

java实现简单年龄计算器

java实现简单年龄计算器

java实现简单年龄计算器

更多计算器功能实现,请点击专题: 计算器功能汇总 进行学习

关于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
  • asp之家 软件编程 m.aspxhome.com