如何在不使用内置日历日期包的情况下打印日期,java中的库

如何在不使用内置日历日期包的情况下打印日期,java中的库,java,Java,在这个程序中,我想打印日期的日期,而不使用内置的日历包。。我无法得到特定日期(输入日期)的确切答案。在这里,我得到的日期正确的日期只有31.12.0004。请注意,这是我的指南在5天前给出的评估,我仍然没有得到正确的答案,我不应该使用日历包和api,因为我的课程完成列表的教学大纲:基本数组、if&else、循环、类和对象 import java.util.Scanner; class calendarr { public static void main(String arg[]) {

在这个程序中,我想打印日期的日期,而不使用内置的日历包。。我无法得到特定日期(输入日期)的确切答案。在这里,我得到的日期正确的日期只有31.12.0004。请注意,这是我的指南在5天前给出的评估,我仍然没有得到正确的答案,我不应该使用日历包和api,因为我的课程完成列表的教学大纲:基本数组、if&else、循环、类和对象

import java.util.Scanner;
class calendarr
{
public static void main(String arg[])
    {
int z=0;
do{
    int id,im,iy;
    Scanner ip = new Scanner(System.in);
    System.out.print("Enter DD MM YYYY : ");
    id = ip.nextInt();
    im = ip.nextInt();
    iy = ip.nextInt();
    System.out.print("\n");

    int totalDays = 0, leapYearDays = 366, ordinaryYearDays = 365, y = iy-1,day=0;
    int totalDaysOfGivenYear,totalDaysUptoGivenMonth=0, totalDaysEntire;
    int leapYearCount = y%4, ordinaryYearCount = y - leapYearCount;
    int totalDaysUptoPreviousYear=0;
    int totalDaysUptoPreviousYearCount = (leapYearCount * leapYearDays)+(ordinaryYearCount * ordinaryYearDays);
    System.out.print("Odd Days Leap Year and Ordinary Year : "+leapYearCount+" "+ordinaryYearCount+"\n");


    String[] months = new String[] {"January","February","March","April","May","June","July","August","September","October","November","December"};
    int[] monthDates = new int[] {0,31,28,31,30,31,30,31,31,30,31,30,31};
    String[] weekDays = new String[] {"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};


        if((iy%4==0)&&(iy%100!=0)||(iy%400==0))
            {
            monthDates[2] = 29;
            System.out.println("It is Leap Year");
            }
        else System.out.println("It is Ordinary Year");

    for(int i=1;i<=monthDates.length;i++)
        {


        totalDays = totalDays + monthDates[i-1];
        }
    for(int j=1;j<=im;j++)
        {
        totalDaysUptoGivenMonth = totalDaysUptoGivenMonth+monthDates[j];

        }
        totalDaysOfGivenYear = totalDaysUptoGivenMonth+id-monthDates[im];

        System.out.println("Total Days Upto Given Months : "+totalDaysOfGivenYear+"\nTotal Days of given year :  "+iy+" : "+totalDays);


        System.out.println("Total Count : "+totalDaysUptoPreviousYearCount);


        //totalDaysEntire = totalDaysUptoPreviousYearCount - totalDays+ totalDaysOfGivenYear;
        totalDaysEntire = totalDaysUptoPreviousYearCount+ totalDaysOfGivenYear-y;
        System.out.println("Overall Total Days : "+totalDaysEntire);


    /*//day = (365+366-totalDays+totalDaysUptoPreviousYearCount)%7;

        for(int k=0;k<=y;k++)
        {

        day = (totalDaysEntire%7);



        System.out.println(day+"\n"+weekDays[day]+"\n\n");
        }*/

    day = ((totalDaysUptoPreviousYearCount+ totalDaysOfGivenYear-iy)%7);

    System.out.println(day+"\n"+weekDays[day]+"\n\n");
}
while(z<5); 

    }
}
import java.util.Scanner;
类日历
{
公共静态void main(字符串arg[])
{
int z=0;
做{
int-id,im,iy;
扫描仪ip=新扫描仪(System.in);
系统输出打印(“输入DD-MM-YYYY:”);
id=ip.nextInt();
im=ip.nextInt();
iy=ip.nextInt();
系统输出打印(“\n”);
int totalDays=0,leapYearDays=366,ordinaryYearDays=365,y=iy-1,day=0;
int totalDaysOfGivenYear,totalDaysUptoGivenMonth=0,totalDaysEntire;
int-leapYearCount=y%4,ordinaryYearCount=y-leapYearCount;
int totalDaysUptoPreviousYear=0;
int totalDaysUptoPreviousYearCount=(leapYearCount*leapYearDays)+(ordinaryYearCount*ordinaryYearDays);
System.out.print(“奇数天闰年和普通年:“+leapYearCount+”“+ordinaryYearCount+”\n”);
字符串[]个月=新字符串[]{“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
int[]monthDates=新int[]{0,31,28,31,30,31,31,30,31,31};
String[]weekDays=新字符串[]{“周六”、“周日”、“周一”、“周二”、“周三”、“周四”、“周五”};
如果((iy%4==0)和&(iy%100!=0)| |(iy%400==0))
{
月龄[2]=29;
System.out.println(“这是闰年”);
}
else System.out.println(“这是普通年份”);

对于(inti=1;i嘿,您的代码中需要一些修复,请检查这段代码,它现在可以工作了

import java.util.Scanner;
public class calendarr
{
public static void main(String arg[])
    {
int z=0;
do{
    int id,im,iy;
    Scanner ip = new Scanner(System.in);
    System.out.print("Enter DD MM YYYY : ");
    id = ip.nextInt();
    im = ip.nextInt();
    iy = ip.nextInt();
    System.out.print("\n");

    int totalDays = 0, leapYearDays = 366, ordinaryYearDays = 365, y = iy-1,day=0;
    int totalDaysOfGivenYear,totalDaysUptoGivenMonth=0, totalDaysEntire;
    int leapYearCount = 0;
    //calculate the number of leap and non leap years
    for(int i=0;i<=y;i++){
        if((i%4==0)&&(i%100!=0)||(i%400==0))
            {
                leapYearCount++;
            }
    }
    int ordinaryYearCount = y - leapYearCount;
    int totalDaysUptoPreviousYear=0;
    int totalDaysUptoPreviousYearCount = (leapYearCount * leapYearDays)+(ordinaryYearCount * ordinaryYearDays);
    System.out.print("Odd Days Leap Year and Ordinary Year : "+leapYearCount+" "+ordinaryYearCount+"\n");


    String[] months = new String[] {"January","February","March","April","May","June","July","August","September","October","November","December"};
    int[] monthDates = new int[] {0,31,28,31,30,31,30,31,31,30,31,30,31};
    String[] weekDays = new String[] {"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};

 if((iy%4==0)&&(iy%100!=0)||(iy%400==0))
            {
            monthDates[2] = 29;
            System.out.println("It is Leap Year");
            }
        else System.out.println("It is Ordinary Year");

    for(int i=1;i<=monthDates.length;i++)
        {
        totalDays = totalDays + monthDates[i-1];
        }
    for(int j=1;j<im;j++)
        {
        totalDaysUptoGivenMonth = totalDaysUptoGivenMonth+monthDates[j];

        }
        totalDaysOfGivenYear = totalDaysUptoGivenMonth+id;

        System.out.println("Total Days Upto Given Months : "+totalDaysOfGivenYear+"\nTotal Days of given year :  "+iy+" : "+totalDays);


        System.out.println("Total Count : "+totalDaysUptoPreviousYearCount);


        //totalDaysEntire = totalDaysUptoPreviousYearCount - totalDays+ totalDaysOfGivenYear;
        totalDaysEntire = totalDaysUptoPreviousYearCount+ totalDaysOfGivenYear;
        System.out.println("Overall Total Days : "+totalDaysEntire);


    /*//day = (365+366-totalDays+totalDaysUptoPreviousYearCount)%7;

        for(int k=0;k<=y;k++)
        {

        day = (totalDaysEntire%7);



        System.out.println(day+"\n"+weekDays[day]+"\n\n");
        }*/

    day = (totalDaysEntire%7);

    System.out.println(day+"\n"+weekDays[day]+"\n\n");
}
while(z<5); 

    }
}

您能提供示例输出吗?您应该得到什么以及您得到什么。输出:输入DD-MM-yyy:1闰年和普通年的天数:0 0到给定月份的普通年总天数:1给定年份的总天数:1:365总计数:0总天数:1 0Saturday@ManiBeginner检查我的答案
Odd Days Leap Year and Ordinary Year : 485 1512
It is Ordinary Year
Total Days Upto Given Months : 1
Total Days of given year :  1998 : 365
Total Count : 729390
Overall Total Days : 729391
5
Thursday