gpt4 book ai didi

java - 获得正确的星期几和月份

转载 作者:行者123 更新时间:2023-11-30 06:26:53 25 4
gpt4 key购买 nike

我的类(class)有作业:

The class should have a methods of calculating the number of days between two dates, returns the day of the week and giving the sign of the zodiac for a given date.

这是我写的代码:

import java.util.GregorianCalendar;

public class Data {
private GregorianCalendar date;

public Data(int year, int month, int day) {
date = new GregorianCalendar(year, month + 1, day);
}

public int differenceInDaysFrom(int year, int month, int day) {
GregorianCalendar tempDate = new GregorianCalendar(year, month, day);
int daysBetween = (int)(tempDate.getTimeInMillis()-date.getTimeInMillis())/(1000 * 60 * 60 * 24);
return Math.abs(daysBetween);
}

public String dayOfTheWeek() {
String[] stringDays = new String[]{ "Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday" };
return stringDays[date.get(GregorianCalendar.DAY_OF_WEEK) - 1];
}

public void zodiacSign() {
int day = date.get(GregorianCalendar.DATE);
int month = date.get(GregorianCalendar.MONTH);

System.out.println(day + " " + month);
}
}
  1. 当我用 YYY\MM\DD 初始化 date 时,在检查 dayOfTheWeek 的近期日期时一切正常,但当我输入我的出生日期 (1991\11\14) 时,一切正常星期三回来,但我是星期四出生的。

  2. 当我试图获取 day 和 mont 以检查黄道带时,它完全崩溃了,当我输入 11 时返回 0(对于月份,天数很好)。

  3. 还有什么...当我开始使用 +1 到 month 甚至 differenceInDaysFrom 停止正常工作时

最佳答案

关于你生日(周三或周四)的问题:

首先,您必须将第 10 个月设为 11 月,因为 0=January。其他答案已经发现了这一点。

然后您需要将您的字符串数组声明为:

    new String[] { "Sunday", "Monday", "Tuesday", 
"Wednesday", "Thursday", "Friday", "Saturday" };

因为,DAY_OF_WEEK, 1=Sunday, 2=MONDAY, 检查 Calendar 类的 javaDoc。那么你应该得到“星期四”

为生肖法。你输入了 11,所以你的日期对象接收到的月份参数是 11+1=12。 12 不是有效的月份(0-11 是有效的,如上所述,Jan=0)因此你被吓坏了。 :)

关于java - 获得正确的星期几和月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921734/

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