一个简单的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 web服务器实现
前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...
- Java学习笔记 11/15:一个简单的JAVA例子
首先来看一个简单的 Java 程序. 来看下面这个程序,试试看是否看得出它是在做哪些事情! 范例:TestJava.java // TestJava.java,java 的简单范例 public ...
- Java入门篇(一)——如何编写一个简单的Java程序
最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...
- Ant—使用Ant构建一个简单的Java工程(两)
博客<Ant-使用Ant构建一个简单的Java项目(一)>演示了使用Ant工具构建简单的Java项目,接着这个样例来进一步学习Ant: 上面样例须要运行多条ant命令才干运行Test类中的 ...
- IntelliJ IDEA创建一个简单的Java Project(二)
1. 选择要创建的项目类型,同时配置本地的JDK 2. 是否使用模板创建项目 3. 选择项目在本地的存储位置 4. 点击Finish,完成一个简单的Java工程的创建.
- 利用 Docker 构建一个简单的 java 开发编译环境
目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...
- 【Java】一个简单的Java应用程序
简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...
- 一个简单的Java应用程序
目录 一个简单的Java应用程序 首次运行结果 程序示例 运行结果 修改大小写之后的运行结果 程序示例 运行结果 关键字public 关键字class 类名及其命名规则 类名必须以字母开头 不能使用J ...
- Linux环境下部署完JDK后运行一个简单的Java程序
前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...
随机推荐
- 【bzoj3288】Mato矩阵
题目大意:给定一个n阶行列式,第i行第j列为GCD(i,j),求这个行列式的值 高斯消元之后发现对角线上的东西是phi 于是线性筛出所有的欧拉函数即可 #include<algorithm> ...
- ldd LD_TRACE_LOADED_OBJECTS
1 该环境变量设置为1的话,只会打印所执行的程序的依赖,即所依赖的动态链接库
- javascript学习---BOM
1.top是顶级的框架,也就是浏览器窗口. 2.window.close()只能关闭window.open()打开的窗口. 3.firefox不支持修改状态栏,firefox3后强制始终在弹出窗口中显 ...
- forceStopPackage与killBackgroundProcesses方法
最近了解一键清理功能,需要实现强制关闭进程的功能.下面介绍下killBackgroundProcesses()方法和forceStopPackage()方法. killBackgroundProces ...
- 使用inet_ntoa() 时编译提示错误:
char*inet_ntoa(struct in_addr in)将一个IP转换成一个互联网标准点分格式的字符串. 我把 inet_ntoa 需要的头文件加上去: #include <sy ...
- Linux 系统命令 - pwd - 显示当前所在的位置
命令详解 重要星级: ★★★★★ 功能说明: pwd命令是 "print working directory" 中每个单词的首字母缩写,其功能是显示当前工作目录的绝对路径.在实际工 ...
- E20171225-hm
abstract adj. 抽象的,理论上的; 难解的; 抽象派的; 茫然的;
- 微信H5页面 - 调酒
这是微信H5的一款小游戏(一款酒的推广活动),主要游戏页面如下: 游戏规则: 点击选择2个元素(圈圈图片),放入瓶中,使它们与瓶中已有的三个元素碰撞,调配佳酿. 只有选择正确的2个元素搭配,才可以调配 ...
- [C陷阱和缺陷] 第1章 词法“陷阱”
有感自己的C语言在有些地方存在误区,所以重新仔细把"C陷阱和缺陷"翻出来看看,并写下这篇博客,用于读书总结以及日后方便自身复习. 第1章 词法"陷阱" 1.1 ...
- ACM_求N^N的前5位数和后5位数(数论)
NNNNN Time Limit: 2000/1000ms (Java/Others) Problem Description: 对于整数N,求N^N的前5位和后5位(1057题加强版) Input: ...