gpt4 book ai didi

java - 查找 NIC 详细信息的程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:17 26 4
gpt4 key购买 nike

我将这个程序用于我的目的。 导入 java.util.Scanner;

class NIC_Details {

String id;
int month[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

NIC_Details() {
Scanner input = new Scanner(System.in);
System.out.println("Enter Your NIC Number \nLike : 000000000V");
id = input.next();
}

int getYear() {
return (1900 + Integer.parseInt(id.substring(0, 2)));
}

int getDays() {
int d = Integer.parseInt(id.substring(2, 5));
if (d > 500) {
return (d - 500);
} else {
return d;
}
}

public void setMonth() {
int mo = 0, da = 0;
int days = getDays();

for (int i = 0; i < month.length; i++) {
if (days < month[i]) {
mo = i + 1;
da = days;
break;
} else {
days = days - month[i];
}
}
System.out.println("Month : " + mo + "\nDate : " + da);

}

public String getSex() {
String M = "Male", F = "Female";
int d = Integer.parseInt(id.substring(2, 5));
if (d > 500) {
return F;
} else {
return M;
}
}

public static void main(String[] args) {
NIC_Details N = new NIC_Details();
System.out.println("Your Details of Date of Birth from NIC Number");
System.out.println("Year : " + N.getYear());
N.setMonth();
System.out.println("Sex : " + N.getSex());
}
}

但是当我输入像这样的 NIC 号码时 93031***它给出了这个细节

Enter Your NIC Number 
Like : 000000000V
93031******
Your Details of Date of Birth from NIC Number
Year : 1993
Month : 2
Date : 0
Sex : Male

请告诉我这里发生了什么。

最佳答案

你的代码没问题,是你的逻辑有问题。

您输入的是 31 天。你的setMonth()方法询问是否 days < month[i] , 当 month[0]==31 .
答案是否定的,那你就做days = days - month[i];这使得 days = 0 , 和 month = 2 .

您可能希望将 if 语句更改为:

if (days <= month[i]) {

但这取决于天气 31 天意味着 31 天过去了,然后你的代码就这样了

关于java - 查找 NIC 详细信息的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18051125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com