gpt4 book ai didi

java - 在不使用任何日期类的情况下计算两个日期之间的天数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:15 25 4
gpt4 key购买 nike

我正在尝试为我的 Java 入门类(class)编写一个程序。用户按以下格式 (19900506) 输入他们的生日,然后显示此人的天数。该程序使用 GregorianCalendar 类获取今天的日期并比较两者。考虑闰年。我能够纠正程序,但我需要编写另一个版本来使用我自己的算法计算差异。我碰壁了,不知道该怎么做。我正在考虑将两个日期之间的差异转换为毫秒,然后再次转换为天数。但是有很多事情需要考虑,比如几个月中的天数、从今天开始的剩余天数等。我们将不胜感激。

这是我的代码:

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class DayssinceBirthV5 {

public static void main(String[] args) {

GregorianCalendar greg = new GregorianCalendar();
int year = greg.get(Calendar.YEAR);
int month = greg.get(Calendar.MONTH);
int day = greg.get(Calendar.DAY_OF_MONTH);

Scanner keyboard = new Scanner(System.in);
System.out.println("Enter your birthday: AAAAMMDD): ");
int birthday = keyboard.nextInt();//

int testyear = birthday / 10000;// year
int testmonth = (birthday / 100) % 100;// Month
int testday = birthday % 100;// Day

int counter = calculateLeapYears(year, testyear);

GregorianCalendar userInputBd = new GregorianCalendar(testyear, testmonth - 1, testday);// Input

long diffSec = (greg.getTimeInMillis() - userInputBd.getTimeInMillis());// Räkna ut diff

// long diffSec = greg.get(Calendar.YEAR)-birthday;//calc Diff
long total = diffSec / 1000 / 60 / 60 / 24;// calc dif in sec. Sec/min/hours/days
total += counter;
System.out.println("Today you are : " + total + " days old");

}

private static int calculateLeapYears(int year, int testyear) {
int counter = 0;
for (int i = testyear; i < year; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
counter++;
System.out.println("Amount of leap years: " + counter);
}
}
return counter;
}

}

最佳答案

你可以这样计算天数——

  1. 编写一个计算一年中天数的方法:闰年有 366 天,平年有 365 天。
  2. 编写另一个获取日期并查找一年中第几天的方法 - 1 月 1 日是第 1 天,1 月 2 日是第 2 天,依此类推。您必须使用 1 中的功能。
  3. 计算以下内容:
    从出生之日到年底的天数。
    从年初到当前日期的天数。
    所有年份之间的天数。
  4. 总结以上所有内容。

关于java - 在不使用任何日期类的情况下计算两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32411491/

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