java實(shí)現(xiàn)簡單年齡計算器
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡單年齡計算器的具體代碼,供大家參考,具體內(nèi)容如下
制作一個如下圖年齡計算器

根據(jù)題目,我做了一個由Calendar類以及年月日各相減得到的年齡,當(dāng)然正確的方法不止一個,以下為我的源代碼和結(jié)果截圖:
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("日期格式錯誤");
}
}
// 年齡計算函數(shù)
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);
}
}
}
結(jié)果截圖:




更多計算器功能實(shí)現(xiàn),請點(diǎn)擊專題: 計算器功能匯總 進(jìn)行學(xué)習(xí)
關(guān)于Android計算器功能的實(shí)現(xiàn),查看專題:Android計算器 進(jìn)行學(xué)習(xí)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用jsp調(diào)用javabean實(shí)現(xiàn)超簡單網(wǎng)頁計算器示例
- java 簡單的計算器程序?qū)嵗a
- java實(shí)現(xiàn)簡單的計算器類實(shí)例
- Java Swing實(shí)現(xiàn)簡單的體重指數(shù)(BMI)計算器功能示例
- Java實(shí)現(xiàn)簡單的表達(dá)式計算器功能示例
- Java對象簡單實(shí)用案例之計算器實(shí)現(xiàn)代碼
- java圖形化界面實(shí)現(xiàn)簡單混合運(yùn)算計算器的示例代碼
- java簡單模仿win10計算器
- Java編寫簡單計算器的完整實(shí)現(xiàn)過程
相關(guān)文章
Java編程小實(shí)例—數(shù)字時鐘的實(shí)現(xiàn)代碼示例
正所謂拳不離手曲不離口,java學(xué)習(xí)的過程中,練習(xí)還是要多一點(diǎn)比較好。接下來分享給大家一個Java編程的小實(shí)例,供朋友們參考。2017-10-10
SpringBoot中使用Guava實(shí)現(xiàn)單機(jī)令牌桶限流的示例
本文主要介紹了SpringBoot中使用Guava實(shí)現(xiàn)單機(jī)令牌桶限流的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
java基于包結(jié)構(gòu)的請求路由實(shí)現(xiàn)實(shí)例分享
基于包結(jié)構(gòu)的請求路由簡單實(shí)現(xiàn)實(shí)例分享,大家參考使用吧2013-12-12
SpringBoot + Spring Cloud Consul 服務(wù)注冊和發(fā)現(xiàn)詳細(xì)解析
這篇文章主要介紹了SpringBoot + Spring Cloud Consul 服務(wù)注冊和發(fā)現(xiàn),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
java使用PDFRenderer實(shí)現(xiàn)預(yù)覽PDF功能
這篇文章主要為大家詳細(xì)介紹了java使用PDFRenderer實(shí)現(xiàn)預(yù)覽PDF功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12

