我想得到2个日期之间的月数.日期是某人生日和当前日期.所以我得到两个日期之间的年数而不是月数.
假设我的日期是06/09/2011和06/11/2012.所以我希望答案是1年2个月.我得到的一年而不是月份.请帮助.下面是获取年数的代码
public int getAge(Date dateOfBirth) {
today = Calendar.getInstance();
Calendar birthDate = Calendar.getInstance();
birthDate.setTime(dateOfBirth);
if (birthDate.after(today)) {
throw new IllegalArgumentException("Can't be born in the future");
}
age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
month = today.get(Calendar.MONTH) - birthDate.get(Calendar.MONTH);
if ( (birthDate.get(Calendar.DAY_OF_YEAR) - today.get(Calendar.DAY_OF_YEAR) > 3) ||
(birthDate.get(Calendar.MONTH) > today.get(Calendar.MONTH ))){
days = birthDate.get(Calendar.DAY_OF_MONTH) - today.get(Calendar.DAY_OF_MONTH);
age--;
Toast.makeText(getApplicationContext(), "inside if", Toast.LENGTH_SHORT).show();
Log.e("month is",month+"");
Log.e("Days",days+ " left");
}else if ((birthDate.get(Calendar.MONTH) == today.get(Calendar.MONTH )) &&
(birthDate.get(Calendar.DAY_OF_MONTH) > today.get(Calendar.DAY_OF_MONTH ))){
Toast.makeText(getApplicationContext(), …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
DateTime start = DateTime.Now;
Thread.Sleep(60000);
DateTime end = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
我想计算开始和结束之间的分钟差异.我该怎么办呢?对于上面的示例,结果应为"1".
提前致谢!
如何在JDK7中找到两个日期之间的差异,以便可以添加差异以使两个日期相等?
我尝试使用类似StackOverflow问题的解决方案,从另一个中减去一个日期的毫秒数,但这可能导致日期之间的差异不正确.
在这个例子中,我尝试通过设置使其a相等ba = (b-a) + a
private void makeTwoDatesEqual(GregorianCalendar a, GregorianCalendar b, DatatypeFactory datatypeFactory) {
long b_minus_a = b.getTimeInMillis() - a.getTimeInMillis();
Duration delta = datatypeFactory.newDuration(b_minus_a);
delta.addTo(a);
}
Run Code Online (Sandbox Code Playgroud)
但结果出人意料:
之前
a = "2015-08-29T00:00:00.000Z"
b = "2040-01-01T00:00:00.000Z"
delta = "P24Y4M5DT0H0M0.000S" // 2 days longer than it should be.
Run Code Online (Sandbox Code Playgroud)
后
a = "2040-01-03T00:00:00.000Z"
b = "2040-01-01T00:00:00.000Z"
delta = "P24Y4M5DT0H0M0.000S"
a.equals(b) = false
Run Code Online (Sandbox Code Playgroud)
Joda-Time也有同样的问题:
private void makeTwoDatesEqual(GregorianCalendar a, GregorianCalendar b) {
DateTime date1 = new DateTime(a); …Run Code Online (Sandbox Code Playgroud) 如何从日期时间选取器值显示年龄,月,日.例如:
Datetimepicker value = #1/11/2014#
Today = #1/12/2015#.
Run Code Online (Sandbox Code Playgroud)
最终结果将是"1年,0个月,1天(S)".但是获得这个结果不仅仅是减去DateTime.Year价值等等.有人知道数学公式或数学计算吗?
试图从日期day - hours - mins - sec的字符串条目中获取日期差异.时间条目也有AM, PM.我正在尝试使用子字符串并将其转换为日期时间,但是AM - PM使其变得困难.
我有:06-OCT-15 09.30.20.000000 AM和06-OCT-15 09.45.20.000000 PM
我想要:0 day(s) 12 hour(s) 15 min(s) 0 sec(s).
我想要在两个日期之间经过确切的年,月和日.
DateTime startDate = new DateTime(1974, 8, 15);
DateTime endDate = DateTime.Now.ToLocalTime();
Run Code Online (Sandbox Code Playgroud)
我想找到使用C#的上述两天之间经过的年数,月数和天数?
我的预期输出
年:68个月:10天:23
我推荐了一篇帖子,因为他们只解释了几天计算两个日期之间的差异(天数)?
但我需要三年,一年,一天和一天.请帮助我如何计算......
重复说明:已经在计算年,月,周和日中发布了相同逻辑的问题,该问题中提供的答案过于冗长,在我的问题中,我只询问年,月和日而不是周.概念是相同的,但与该问题相比,计算天数的逻辑是不同的,在这里我以非常简单的方式得到了答案.我的答案很满意.
完全重复:
原始问题:如何区分年/月/周/日的两个日期?(7年前被问到)
你的标记问题:计算年,月,周和日 (5年前问)
我正在使用 java 8 并且我正在尝试计算两个 OffsetDateTime 对象之间的月数。做这个的最好方式是什么?
好的,所以我创建了一个函数来显示距离未来某个日期的天数...直到天数超过 9 天为止都是正确的..如果超过,它似乎会显示随机的天数。 ..请参阅下面的我的代码:
public String daysTillExpire() {
String daysLeft = "";
int position = 0 ;
String inputDateString = UIDM.get(position).date;
Calendar calCurr = Calendar.getInstance();
Calendar day = Calendar.getInstance();
try {
day.setTime(new SimpleDateFormat("dd-MM-yyyy").parse(inputDateString));
} catch (ParseException e) {
e.printStackTrace();
}
if (day.after(calCurr)) {
String noumberOfDays = "Days left: " + (day.get(Calendar.DAY_OF_MONTH) - (calCurr.get(Calendar.DAY_OF_MONTH)));
daysLeft = UIDM.get(position).date + "\n(" + noumberOfDays+")" ;
}
else if (day.before(calCurr)) {
daysLeft = "Key Expired";
return daysLeft; }
return daysLeft;
}
Run Code Online (Sandbox Code Playgroud)
UIDM是一个包含信息的数据模型...String inputDateString …
假设我有: 员工具有模型的startDate作为其属性变量和推广模式有promotionDate。我想知道员工在晋升之前工作了多长时间,我必须找到promotionDate 和startDate 之间的差异。如果我将 startDate 作为employee.getStartDate()和promotionDate 作为promotion.getPromotionDate,我怎么能找到在年月日差为任何日期,
任何帮助将非常感激。
更新:我解决了以下问题
String startDate = "2018-01-01";
String promotionDate = "2019-11-08";
LocalDate sdate = LocalDate.parse(startDate);
LocalDate pdate = LocalDate.parse(promotionDate);
LocalDate ssdate = LocalDate.of(sdate.getYear(), sdate.getMonth(), sdate.getDayOfMonth());
LocalDate ppdate = LocalDate.of(pdate.getYear(), pdate.getMonth(), pdate.getDayOfMonth());
Period period = Period.between(ssdate, ppdate);
System.out.println("Difference: " + period.getYears() + " years "
+ period.getMonths() + " months "
+ period.getDays() + " days ");
Run Code Online (Sandbox Code Playgroud)
谢谢你。
我对 Java 平台非常初学者和陌生。我有以下 3 个简单的 Java 日期差计算函数。我想在所有 3 种方法中排除以下计算中的周末。任何人都可以帮助如何在以下 dateDiff 计算中排除周末吗?
public static String getDatesDiff(String date1, String date2) {
String timeDiff = "";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(date1);
d2 = format.parse(date2);
long diff = d2.getTime() - d1.getTime();
timeDiff = ""+diff;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return timeDiff;
}
Run Code Online (Sandbox Code Playgroud)
public static String getDatesDiffAsDays(String date1, String date2) {
String timeDiff = ""; …Run Code Online (Sandbox Code Playgroud)