天天看點

軟體工程,結構化設計

軟體工程,結構化設計
軟體工程,結構化設計

代碼

package com.ding.test;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Year;
import java.util.Date;

public class PdRunNian {

    public static void main(String[] args) throws ParseException {
        System.out.println("=====判斷閏年====");
        int i = pdRunNian(2020);
        System.out.println(i);

        System.out.println("=======傳回下一天=======");
       String date = nextDate(2021, 10, 23, 6);
        System.out.println("下一天為:"+date);

        System.out.println("======今年第幾天======");
        int currentDate = currentDate(2021, 10, 23);
        System.out.println("今年第幾天:"+currentDate);

        System.out.println("=======兩個日期想差的天數========");
        String dateStr = "1949-10-1 11:28:28";
        String dateStr2 = "2021-10-23 11:28:28";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date2 = format.parse(dateStr2);
        Date date1 = format.parse(dateStr);
        int days = differentDaysByMillisecond(date1, date2);
        System.out.println(days);
        
        System.out.println("=====判斷素數=====");
        boolean b = PdSushu(7);
        System.out.println("該數是素數嗎:"+b);

        System.out.println("驗證哥德巴赫猜想");
        Yanzhenh(7);

        System.out.println("=====求最大最小值=====");
        int[] a = {3, 4, 1, 2, 9, 4, 10, 32, 24, 42};
        int[] mm = Mm(a);
        System.out.println("最大值為:"+mm[0]+"索引為:"+mm[2]+"最小值為:"+mm[1]+"索引為:"+mm[3]);

    }



    //判定是否閏年,并傳回一個整型值
    public static int pdRunNian(int year){
        int y=0;
        if(year%400==0|| year%4==0&& year%100!=0){
            y=1;
        }
        return y;
    }


    //擷取并傳回明天(下一天)的新日期
    public static String nextDate(int year,int month,int day, int weekday){
        int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        if(pdRunNian(year)==1){
            m[2]=29;
        }
        int a=year;
        int b=month;
        int c=day;
        int d=weekday;
        c=c+1;
        if(c>m[b]){
            c=1;
            b=b+1;
            if(b>12){
                a=a+1;
                b=1;
                c=1;
            }
        }
        d=d+1;
        if(d>7){d=1;}
        String n = String.valueOf(a) + String.valueOf(b)+ String.valueOf(c)+ String.valueOf(d);
        return n;

    }


    //計算該日期是當年第幾天
    public static int currentDate(int year,int month,int day){
        int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        if(pdRunNian(year)==1){
            m[2]=29;
        }
        int a=year;
        int b=month;
        int c=day;

        c=c;
        if(c>m[b]){
            c=1;
            b=b+1;
            if(b>12){
                a=a+1;
                b=1;
                c=1;
            }
        }
        int n = 0;
        for (int i = 0; i < month; i++) {
            n += m[i];

        }

        return n + c;

    }


     //通過時間秒毫秒數判斷兩個時間的間隔
    public static int differentDaysByMillisecond(Date date1, Date date2)
    {
        int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
        return days;
    }

    //判斷素數
    public static boolean PdSushu(int num) {
        boolean result = true;
        for (int i = 2; i < num; ++i) {
              if (num % i == 0) {
                  result = false;
                  break;
              }
          }

        return result;
    }

    //驗證哥德巴赫猜想
    public static void Yanzhenh(int n) {
        for (int a = 2; a <= n - 1; ++a) {
            int b=n-a;
            boolean x=PdSushu(a);
            boolean y=PdSushu(b);
            if(x&&y) {
                System.out.println(a+"+"+b+"="+n);
            }
        }
    }
    //傳回一個最大值和一個最小值
    public static int [] Mm(int num[]) {
        int[] result = new int[4];
        result[0] = num[0];//最大
        result[1] = num[1];//最小
        for (int i = 0; i < num.length; i++) {
            if (result[0] < num[i]) {
                result[0] = num[i];
                result[2] = i;//索引
            }
            if (result[1] > num[i]) {
                result[1] = num[i];
                result[3] = i;//索引
            }
        }
        return result;
    }
}


package com.ding.test;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Year;
import java.util.Date;

public class PdRunNian {

    public static void main(String[] args) throws ParseException {
        System.out.println("=====判斷閏年====");
        int i = pdRunNian(2020);
        System.out.println(i);

        System.out.println("=======傳回下一天=======");
       String date = nextDate(2021, 10, 23, 6);
        System.out.println("下一天為:"+date);

        System.out.println("======今年第幾天======");
        int currentDate = currentDate(2021, 10, 23);
        System.out.println("今年第幾天:"+currentDate);

        System.out.println("=======兩個日期想差的天數========");
        String dateStr = "1949-10-1 11:28:28";
        String dateStr2 = "2021-10-23 11:28:28";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date2 = format.parse(dateStr2);
        Date date1 = format.parse(dateStr);
        int days = differentDaysByMillisecond(date1, date2);
        System.out.println(days);
        
        System.out.println("=====判斷素數=====");
        boolean b = PdSushu(7);
        System.out.println("該數是素數嗎:"+b);

        System.out.println("驗證哥德巴赫猜想");
        Yanzhenh(7);

        System.out.println("=====求最大最小值=====");
        int[] a = {3, 4, 1, 2, 9, 4, 10, 32, 24, 42};
        int[] mm = Mm(a);
        System.out.println("最大值為:"+mm[0]+"索引為:"+mm[2]+"最小值為:"+mm[1]+"索引為:"+mm[3]);

    }



    //判定是否閏年,并傳回一個整型值
    public static int pdRunNian(int year){
        int y=0;
        if(year%400==0|| year%4==0&& year%100!=0){
            y=1;
        }
        return y;
    }


    //擷取并傳回明天(下一天)的新日期
    public static String nextDate(int year,int month,int day, int weekday){
        int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        if(pdRunNian(year)==1){
            m[2]=29;
        }
        int a=year;
        int b=month;
        int c=day;
        int d=weekday;
        c=c+1;
        if(c>m[b]){
            c=1;
            b=b+1;
            if(b>12){
                a=a+1;
                b=1;
                c=1;
            }
        }
        d=d+1;
        if(d>7){d=1;}
        String n = String.valueOf(a) + String.valueOf(b)+ String.valueOf(c)+ String.valueOf(d);
        return n;

    }


    //計算該日期是當年第幾天
    public static int currentDate(int year,int month,int day){
        int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        if(pdRunNian(year)==1){
            m[2]=29;
        }
        int a=year;
        int b=month;
        int c=day;

        c=c;
        if(c>m[b]){
            c=1;
            b=b+1;
            if(b>12){
                a=a+1;
                b=1;
                c=1;
            }
        }
        int n = 0;
        for (int i = 0; i < month; i++) {
            n += m[i];

        }

        return n + c;

    }


     //通過時間秒毫秒數判斷兩個時間的間隔
    public static int differentDaysByMillisecond(Date date1, Date date2)
    {
        int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
        return days;
    }
    public static boolean PdSushu(int num) {
        boolean result = true;
        for (int i = 2; i < num; ++i) {
              if (num % i == 0) {
                  result = false;
                  break;
              }
          }

        return result;
    }

    //驗證哥德巴赫猜想
    public static void Yanzhenh(int n) {
        for (int a = 2; a <= n - 1; ++a) {
            int b=n-a;
            boolean x=PdSushu(a);
            boolean y=PdSushu(b);
            if(x&&y) {
                System.out.println(a+"+"+b+"="+n);
            }
        }
    }
    //傳回一個最大值和一個最小值
    public static int [] Mm(int num[]) {
        int[] result = new int[4];
        result[0] = num[0];//最大
        result[1] = num[1];//最小
        for (int i = 0; i < num.length; i++) {
            if (result[0] < num[i]) {
                result[0] = num[i];
                result[2] = i;//索引
            }
            if (result[1] > num[i]) {
                result[1] = num[i];
                result[3] = i;//索引
            }
        }
        return result;
    }
}




           

結果

=判斷閏年

1

=傳回下一天=

下一天為:202110247

今年第幾天

今年第幾天:296

=兩個日期想差的天數==

26320

=判斷素數=

該數是素數嗎:true

驗證哥德巴赫猜想

2+5=7

5+2=7

=求最大最小值=

最大值為:42索引為:9最小值為:1索引為:2

程序已結束,退出代碼 0

有的要别人來設定目标,有的給别人設定目标;

有的需要感情支援生活,有的需要意志支援生活。