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

根据题目,我做了一个由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年龄计算器相关推荐

  1. java 序列化 例子_一个简单的Java序列化的例子

    简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对 ...

  2. java 语言 写字板_一个简单的java语言写字板.docx

    一个简单的java语言写字板.docx 一个简单的JAVA语言写字板一.需求分析1.需求分析:现在网络上各种文档编辑器数不胜数.功能也是应有尽有,有能改变字体的,有可以改变字体颜色的,但是,这些软件有 ...

  3. java 分布式任务_一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现...

    折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火.无奈之下自己撸了一个简单的任务调度器, ...

  4. java仿真软件_一个简单的Java仿真程序

    这是一个简单的仿真程序: 在这个仿真程序中,花园委员会都希望了解每天通过大门进入公园的总人数.每个大门都有一个十字 转门或某种其他形式的计数器,并且任何一个十字转门的计数器递增时,就表示公园中的总人数 ...

  5. java单机应用程序_一个简单的java桌面应用:单机版IFTTT

    1.项目背景: ifttt是"if this then that"的缩写,事实上是让你的网络行为能够引发连锁反应.让你使用更为方便.ifttt旨在帮助人们利用各网站的开放API,将 ...

  6. java时钟代码_一个经典的JAVA APPLET时钟程序(一)

    转眼间一年又要过了,自己又老了一岁,郁闷啊.趁着还有几分钟才新年,赶快再发几篇文章,给过去的一年添点东西. 该程序是从网上发现的,是一个简单的时钟显示程序. 代码特色: 时钟代码提供了各种接口,可以在 ...

  7. java应用开发_开发简单的Java应用

    第一章 开发简单的Java应用 1.Java语言的技术分类 (1)JavaSE:标准版,开发桌面应用 (2)JavaEE:企业版,Web应用 (3)JavaME:小型版,嵌入式 2.如何开发和运行Ja ...

  8. java笔试题_一道简单的 Java 笔试题,但值得很多人反思

    专注于Java领域优质技术,欢迎关注 作者:匿蟒 前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问 ...

  9. java断点续传原理_很简单的Java断点续传实现原理

    原理解析 在开发当中,"断点续传"这种功能很实用和常见,听上去也是比较有"逼格"的感觉.所以通常我们都有兴趣去研究研究这种功能是如何实现的? 以Java来说,网 ...

最新文章

  1. PHP删除数组(array一维)中指定的某个值 (转)
  2. pycharm + git实现两台电脑代码同步
  3. Eclipse 创建 Java 包
  4. 文件与文件夹课后作业
  5. 流控制、FlowControl
  6. 上海大都会 H.A Simple Problem with Integers
  7. x光肺部分割数据集_吴恩达发布了大型X光数据集,斯坦福AI诊断部分超越人类 | AAAI 2019...
  8. Hibernate POJO在序列化(JSON)时遇到的若干问题
  9. 谁说前端工程师不能成为全栈?
  10. python语句命令的概念_Python学习笔记1-基础概念
  11. Asp.net core WebApi 使用Swagger生成帮助页实例
  12. r5驱动 索尼exmor_继往开来索尼Exmor RS CMOS 4系传感器来了
  13. y2第一章 初始mybatis的上机3_MyBatis第一章
  14. 人类数据总量_人类身体的11个极限数据
  15. python中终结一个循环的保留字_【单选题】以下可以终结一个循环的保留字是() (2.0分) A. if B. break C. exit D. continue...
  16. 利用YOLO实现自己的目标检测
  17. 2012年1月51CTO壁纸点评活动获奖名单【已结束】
  18. Java 程序员们值得一看的好书推荐
  19. 【浏览器】浏览器安全
  20. 极飞P20植保无人机测评

热门文章

  1. 小米无法播放html5,[html5]关于H5视频播放器常见的一些问题汇总
  2. 深入理解Java虚拟机—低延迟垃圾收集器
  3. 我的Java Web之路 - HTML(1)
  4. 腾讯云前端面试题及答案
  5. 【充电器】小米手机2S电池座充——小米手机官网
  6. 四种元注解(target、retention、documented、inherited)
  7. 骁龙835 VRDK 中的HMD包括哪些
  8. 二维列表排序 python_python教程:[74]列表排序
  9. Go编译原理系列3(词法分析)
  10. 13 个 Python 新手练级项目(技术细节+额外挑战)