我有一个课堂作业:
该类应该有计算两个日期之间天数的方法,返回一周中的哪一天,并给出给定日期的黄道带符号。
这是我写的代码:
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);
}
}
>
当我用YYY\MM\DD初始化<code>日期时,在检查周日以获取近期日期时,一切都很完美,但当我输入出生日期(1991\11\14)时,它返回到星期三,但我出生在星期四。
当我试图获取day和mont来检查黄道十二宫时,它完全崩溃了,当我输入11时返回0(对于month,days工作正常)。
还有什么...当我开始用1
到一个月的甚至差异在DaysFrom
停止正常工作时
您需要的是第一个月
,而不是第1个月>/code>-
date = new GregorianCalendar(year, (month == 0) ? 11 : month - 1, day);
看看这个:
Days d = Days.daysBetween(startDate, endDate);
int days = d.getDays();
http://joda-time.sourceforge.net/faq.html#datediff
你的一个问题是你每月1,而月份从0到11(我知道这很愚蠢),所以11 1是12,这是无效的。(我觉得有一个你可以设定的严格度)
对于您的生日问题(周三或周四):
首先,您必须将第10个月定为11月,因为0=1月
。这一点已被其他答案所发现。
然后你需要将字符串数组声明为:
new String[] { "Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday" };
因为,DAY_OF_WEEK,1=星期日,2=星期一,
请检查日历类的javaDoc。那么你应该得到“星期四”
对于十二宫法。您输入了11,因此您的日期对象接收月份参数为11 1=12。12月不是有效月份(如上所述,0-11是有效的,Jan=0 ),因此您被吓坏了。:)
如何通过给出一个月中的一周和一周中的一天来获得日期。 示例:如果我需要2018年11月的第三个星期二。 月周:3,周日:3 预计日期:2018年11月20日 但我们得到的价值是:2018年11月13日。因为本月的开始日(星期四)少于预期的日期(星期二)。 我怎样才能得到正确的日期??
问题内容: 指定日期时: 我怎么知道这是每月的第三周? 如果我要这个约会怎么办? 我知道如果给定的日期是in年(双性恋),则只有2月有4周 问题答案:
我想知道特定月份/年份的第一个星期一的日期。 我所拥有的: 我基本上有两个int变量,一个代表年份,一个代表月份。 我想要的是: 我想知道这个月的第一个星期一,最好是整数或整数值。 例如: 我有2014年和1月,这个月的第一个星期一是6号,所以我想返回6号。 问题: 我原以为我可以用做到这一点,但我在设置日历时遇到了问题,因为只有年份和月份可用。此外,我不知道如何使用返回月份/年份的第一个星期一。
问题内容: 我正在寻找获取上个月第一天和最后一天的最佳方法。我使用它们进行SQL查询以获取上个月的统计信息。 我认为这是最好的方法,更优化但又不那么全面,有人有另一种方法可以做到这一点吗? 谢谢!! 问题答案: 在PHP 5.3中,您可以使用类:
问题内容: 如何在Java中找出最后一个月及其年份 例如,如果今天是2012年10月10日,则结果应为Month = 9和year = 2012;如果今天是2013年1月10日,则结果应为Month = 12和year = 2012 问题答案: 您的解决方案在这里,但您需要使用减法来代替加法 然后,您可以在上调用getter以获取适当的字段
问题内容: 我想获取特定月份/年份中第一个星期一的日期。 我有的: 我基本上有两个int变量,一个代表年份,一个代表月份。 我想要的是: 我想知道本月的第一个星期一,最好是一个int或Integer值。 例如: 我有2014年和1月(1月),这个月的第一个星期一是6号,所以我想返回6。 问题: 我以为可以做到这一点,但是在设置日历(仅提供年和月)时已经遇到了麻烦。此外,我不确定如何使用返回实际的月