⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testdate.java

📁 java base64
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        int[] age = BigDate.age( mlk, today );
        System.out
                .println( "Martin Luther King would be "
                          + age[ 0 ]
                          + " years and "
                          + age[ 1 ]
                          + " months and "
                          + age[ 2 ]
                          + " days old today." );
        }

        sep();

        {
        BigDate al = new BigDate( 1865, 4, 18 );
        BigDate jfk = new BigDate( 1963, 11, 22 );
        BigDate mlk = new BigDate( 1968, 4, 4 );
        BigDate rfk = new BigDate( 1968, 6, 5 );// according to http://foia.fbi.gov/foiaindex/rfkasumm.htm

        BigDate als = new BigDate( 1981, 10, 6 );

        BigDate zar = new BigDate( 2006, 6, 8 );

        BigDate bb = new BigDate( 2007, 12, 27 );

        System.out.println( "Abraham Lincoln was assassinated on " + al.toString() + "." );
        int[] elapsed = BigDate.age( al, jfk );
        System.out.println( "John Fitzgerald Kennedy was assassinated on " + jfk.toString()
                            + ", "
                            + elapsed[ 0 ]
                            + " years and "
                            + elapsed[ 1 ]
                            + " months and "
                            + elapsed[ 2 ]
                            + " days later." );

        elapsed = BigDate.age( jfk, mlk );
        System.out.println( "Martin Luther King was assassinated on " + mlk.toString()
                            + ", "
                            + elapsed[ 0 ]
                            + " years and "
                            + elapsed[ 1 ]
                            + " months and "
                            + elapsed[ 2 ]
                            + " days later." );

        elapsed = BigDate.age( mlk, rfk );
        System.out.println( "Robert Francis (Bobby) Kennedy was assassinated on " + rfk.toString()
                            + ", "
                            + elapsed[ 1 ]
                            + " months and "
                            + elapsed[ 2 ]
                            + " days later." );

        elapsed = BigDate.age( rfk, als );
        System.out.println( "Anwar El Sadat was assassinated on " + bb.toString()
                            + ", "
                            + elapsed[ 0 ]
                            + " years and "
                            + elapsed[ 1 ]
                            + " months and "
                            + elapsed[ 2 ]
                            + " days later." );
        elapsed = BigDate.age( als, zar );
        System.out.println( "Abu Musab al-Zarqawi was assassinated on " + bb.toString()
                            + ", "
                            + elapsed[ 0 ]
                            + " years and "
                            + elapsed[ 1 ]
                            + " months and "
                            + elapsed[ 2 ]
                            + " days later." );
        elapsed = BigDate.age( zar, bb );
        System.out.println( "Benazir Bhutto was assassinated on " + bb.toString()
                            + ", "
                            + elapsed[ 0 ]
                            + " years and "
                            + elapsed[ 1 ]
                            + " months and "
                            + elapsed[ 2 ]
                            + " days later." );
        }

        sep();

        {
        // Mysterious missing days in the calendar.
        // Pope Gregory: 1582 Oct 4 Thursday, was followed immediately
        // by 1582 Oct 15 Friday dropping 10 days.
        //
        // British: 1752 Sep 2 Wednesday was followed immediately
        // by 1752 Sep 14 Thursday dropping 12 days.
        BigDate priorDate;
        BigDate afterDate;
        if ( BigDate.isBritish )
            {
            System.out
                    .println(
                            "According to the British/American/Canadian calendar, 12 days were dropped." );
            priorDate = new BigDate( 1752, 9, 2 );
            afterDate = new BigDate( 1752, 9, 14 );
            }
        else
            {
            System.out
                    .println(
                            "According to Pope Gregory's calendar, 10 days were dropped." );
            priorDate = new BigDate( 1582, 10, 4 );
            afterDate = new BigDate( 1582, 10, 15 );
            }
        final String[] daysOfTheWeek = {
                "Sunday",
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday" };

        int dayOfWeek = priorDate.getDayOfWeek();
        System.out
                .println( priorDate.toString()
                          + " was a "
                          + daysOfTheWeek[ dayOfWeek ]
                          + "." );
        dayOfWeek = afterDate.getDayOfWeek();
        System.out
                .println( afterDate.toString()
                          + " was a "
                          + daysOfTheWeek[ dayOfWeek ]
                          + "." );
        }

        pause();

        {
        // What is the Julian Day number of various dates 1970/1/1
        // Cross check these with the US Naval Observatory at:
        // http://aa.usno.navy.mil/AA/data/docs/JulianDate.html
        BigDate bigDate = new BigDate( 2000, 3, 20 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for 2000/03/20 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( 1970, 1, 1 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for 1970/01/01 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( 1600, 1, 1 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for 1600/01/01 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( 1500, 1, 1 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for 1500/01/01 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( 1, 1, 1 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for 0001/01/01 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( -1, 12, 31 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for -0001/12/31 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( -6, 1, 1 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for -0006/01/01 is "
                        + bigDate.getProlepticJulianDay() );
        bigDate = new BigDate( -4713, 1, 1 );
        System.out
                .println(
                        "Astronomical Julian Proleptic calendar day for -4713/01/01 is "
                        + bigDate.getProlepticJulianDay() );
        }

        pause();

        {
        // How long till Christmas? ( Sun's way.)
        // this code will give a negative number just after Christmas.
        System.out
                .println( "Your child asks, how long is it until Christmas?" );
        System.out
                .println(
                        "Here are the possible answers you might give to an American child" );

        GregorianCalendar now = new GregorianCalendar();
        int thisYear = now.get( Calendar.YEAR );

        // You may open presents at 7 AM December 25, local time
        System.out
                .println(
                        "You may open your presents at 7 AM Christmas morning." );

        GregorianCalendar christmas =
                new GregorianCalendar( thisYear, 12 - 1, 25, 7, 0, 0 );

        // millis since 1970 Jan 1
        long christmasTimeStamp = christmas.getTime().getTime();

        long nowTimeStamp = now.getTime().getTime();

        double dayUnitsDiff =
                ( christmasTimeStamp - nowTimeStamp )
                / ( double ) MILLISECONDS_PER_DAY;

        System.out
                .println( "1. It is "
                          + dayUnitsDiff
                          + " day units of 24 hours until you may open your presents." );

        System.out
                .println( "2. It is "
                          + Math.ceil( dayUnitsDiff )
                          + " day units of 24 hours rounded up until you may open your presents." );

        System.out
                .println( "3. It is "
                          + Math.round( dayUnitsDiff )
                          + " day units of 24 hours rounded until you may open your presents." );

        System.out
                .println( "4. It is "
                          + Math.floor( dayUnitsDiff )
                          + " day units of 24 hours rounded down until you may open your presents." );

        int gmtChristmasOrdinal =
                ( int ) ( christmasTimeStamp / MILLISECONDS_PER_DAY );
        int gmtNowOrdinal = ( int ) ( nowTimeStamp / MILLISECONDS_PER_DAY );
        int gmtDiffInDays = gmtChristmasOrdinal - gmtNowOrdinal;
        System.out
                .println( "5. Children in Greenwich have "
                          + gmtDiffInDays
                          + " sleeps (midnight crossings) to go until\n"
                          + "you may open your presents.\n"
                          + "They may open theirs even sooner." );

        // For children living in the USA, the timezone offset will be
        // negative.
        // days since 1970 Jan 1
        // There is no GregorianCalender.getOffset or
        // get(ADJUSTED_ZONE_OFFSET);
        int christmasZoneOffset =
                christmas.get( Calendar.ZONE_OFFSET )
                + now.get( Calendar.DST_OFFSET );

        int localChristmasOrdinal =
                ( int ) ( ( christmasTimeStamp + christmasZoneOffset )
                          / MILLISECONDS_PER_DAY );
        int nowZoneOffset =
                now.get( Calendar.ZONE_OFFSET )
                + now.get( Calendar.DST_OFFSET );
        int localNowOrdinal =
                ( int ) ( ( nowTimeStamp + nowZoneOffset )
                          / MILLISECONDS_PER_DAY );
        int localDiffInDays = localChristmasOrdinal - localNowOrdinal;
        System.out
                .println( "6. You have "
                          + localDiffInDays
                          + " sleeps (midnight crossings) to go." );
        }

        {
        // how long till Christmas? ( with BigDate. )
        // this code will give a negative number just after Christmas.

        BigDate today = BigDate.localToday();
        BigDate christmas = new BigDate( today.getYYYY(), 12, 25 );
        System.out
                .println( "7. Uncle Roedy's Bigdate says it is "
                          + ( christmas.getOrdinal() - today.getOrdinal() )
                          + " sleeps until Christmas." );

        int[] age = BigDate.age( today, christmas );
        System.out
                .println( "8. Or put another way "
                          + age[ 0 ]
                          + " years and "
                          + age[ 1 ]
                          + " months and "
                          + age[ 2 ]
                          + " days to go." );
        }
        }// end demoDate

    /**
     * Display an error message and exit.
     *
     * @param why the error message explaining why we are terminating.
     */
    private static void fail( String why )
        {
        System.out.println( why );
        pause();
        System.exit( 99 );
        }

    /**
     * Pauses the display until the user hits enter.
     *
     * @noinspection ResultOfMethodCallIgnored
     */
    private static void pause()
        {
        count = 0;
        System.out.println();

        try
            {
            for ( int available = System.in.available(); available
                                                         > 0; available-- )
                {
                // discard pending chars
                System.in.read();
                }
            System.out.println( "Hit Enter to continue" );

            // might get cr, lf, cr lf. Ignored previous input from InputStream
            System.in.read();// wait for user to hit Enter, discard result
            }
        catch ( IOException e )
            {
            System.out.println( "keyboard failed" );
            }
        System.out.println();
        System.out.println();
        System.out.println();
        }// end pause

    /**
     * Separates items
     */
    private static void sep()
        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -