【发布时间】:2019-12-07 05:11:32
【问题描述】:
此代码将接受用户的当前日期、月份和年份;以及他们的出生日期、出生月份、出生年份。它以年、月和日为单位输出人的年龄。我编写的代码完成了它的工作。我已经与互联网上的一个网站进行了交叉检查。我想知道:
如何在 Java 中实现 Date 类来获取当前的日期、月份和年份? 如果我想制作 GUI,使用 Swing 或 AWT 套件会更好吗?
import java.util.*;
class AgeCalc
{
static int[] MonthDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public static void Input(int cd, int cm, int cy)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter Birth Date");
int bd = scan.nextShort();
System.out.println("Enter Birth Month");
int bm = scan.nextShort();
System.out.println("Enter Birth Year");
int by = scan.nextShort();
int fnd = (DaysofMidYears(by, cy)) + Birth_CurrYearDays(bd, bm, by, cd, cm, cy);
int y = fnd / 365;
int m = (fnd - (y * 365)) / 30;
int d = (fnd - (y * 365) - (m * 30));
System.out.println("No. of Days: "+d);
System.out.println("No. of Months: "+m);
System.out.println("No. of Years: "+y);
}
public static boolean LeapYearTest(int y)
{
boolean lys =
( ((y % 400) == 0) ? true
: ((y % 10) == 0) ? false
: ((y % 4) == 0) ? true
: false );
return lys;
}
public static int DaysofMidYears(int by, int cy)
{
int dmy = 0;
for
(int i = (by + 1); i <= (cy - 1); i++)
{
dmy += 365;
if
((LeapYearTest(i)) == true)
{
dmy += 1;
}
}
return dmy;
}
public static int InitialDaysofYear(int d, int m, int y)
{
int id = d;
for
(int i = 1; i <= (m - 1); i++)
{
id += (MonthDays[i - 1]);
}
if
(((LeapYearTest(y)) == true) && (m > 2))
{
id += 1;
}
return id;
}
public static int Birth_CurrYearDays(int bd, int bm, int by, int cd, int cm, int cy)
{
int bcyd = 0;
bcyd += (InitialDaysofYear(cd, cm, cy));
bcyd += (365 - (InitialDaysofYear(bd, bm, by)));
if
((LeapYearTest(by)) == true)
{
bcyd += 1;
}
return bcyd;
}
}
【问题讨论】:
-
如何在Java中实现Date类来获取当前的Date、Month和Year?你需要自己编写类
java.util.Date的实现吗?跨度> -
欢迎来到 Stack Overflow。对于 Stack Overflow 问题,如何制作 GUI 太宽泛了。幸运的是,已经有很多关于该主题的教程。使用您的搜索引擎。
-
这看起来像是一个错字:
(y % 10) == 0。应该是y % 100?这样的错字很好地说明了为什么使用经过验证的标准库比为任务编写自己的逻辑更好。 -
这能回答你的问题吗? How do I calculate someone's age in Java? 如果没有,请搜索其他存在的问题。很可能不止一个。
标签: java calculator period date