• 日期函数的生成原理[本文无技术含量,单纯为了记录一个纪念日]


    本文档为博主便于记录2017,6,22这一天所记录;

    生成的该天正好对应博主父亲在博主的这个年龄时博主的出现。所以是一个小小的纪念日;

    package com.AutoFull.demo;
    //功能实现阳历_某天到阳历某天 中间的天数;知晓其中两样求另外一样。
    public class Demo {
    	public static void main(String[] args) {
    
    	System.out.println("打印出我的生日,应该是!");
    	printDate(setDay(1970, 1, 6, 266));//我的生日--------70-93;过了23年;
    	
    	System.out.println("----打印纪念日----");
    	printDate(setDay(2016, 9, 29,266));//所求纪念日
    	
    	System.out.println("验算生日项");//逐日回溯法;一个个往上加着看。
    	System.out.println((setDT(1970, 1, 6, 1970, 9, 29)));
    	}
    	//功能返回天数,这个应该是优化法,二分法求解,略
    	public static int setDT(int year,int month,int day,int year1,int month1,int day1){
    		int kk=0;
    		int[] date2 = new int[]{year1,month1,day1};
    		int[] day2 = new int[3];
    		while(!equalsArr(day2, date2)){
    			day2 = setDate(year, month, day);//后一天。
    			year = day2[0];
    			month = day2[1];
    			day = day2[2];
    			kk++;//执行kk次,直到date2和day相同为止
    		}
    		return kk;
    	}
    	
    	
    	public static int[] setDay(int year,int month,int day,int k){
    		int[] arr1 = new int[3];
    		int i=0;
    		while(i<k){
    			int[] date = setDate(year, month, day);
    			year = date[0];
    			month = date[1];
    			day = date[2];
    			i++;
    		}
    		arr1 = new int[]{year,month,day};
    		return arr1;
    	}
    	
    	public static int reMon(int year, int month){
    		int[] arr = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
    		if(year%4 == 0){
    			arr[1] = 29;
    		}
    		return arr[month-1];
    	}
    
    	public static int sum(int[] arr){
    		int sum = 0;
    		for (int i = 0; i < arr.length; i++) {
    			sum = sum + arr[i];
    		}
    		return sum;
    	}
    	
    	//功能,每加一天返回一个日期
    	public static int[] setDate(int year,int month,int day){
    		int[] date = new int[3];
    		int month_count = reMon(year, month);
    		if (day < month_count) {
    			date = new int[]{year,month,day+1};
    		}else if(month < 12){
    			date = new int[]{year,month+1,1};
    		}else{
    			date = new int[]{year+1,1,1};
    		}
    		return date;
    	}
    	
    	public static void printDate(int[] date){
    		System.out.println("该天为: "+date[0]+"/"+date[1]+"/"+date[2]);
    	}
    	public static boolean equalsArr(int[] arr1,int[] arr2){
    		for (int i = 0; i < arr1.length; i++) {
    			if(arr1[i] != arr2[i]){//中间加个分号,就无敌了
    				return false;
    			}
    		}
    		return true;
    	}
    }
    

    -----------------end--------------

    今天窝了一天,学了一些简单的算法;另外看了一些GUI的知识,也了解了电商的一些基本课程。



  • 相关阅读:
    MYCAT介绍
    MES生产日报存储过程
    HttpContext讲解
    负载均衡session共享问题
    UML学习(二)-----类图
    Hadoop实战第一篇
    网站速度优化的一般方法
    MVC中的ActionResult
    CCF201403-2 窗口(100分)
    CCF201403-2 窗口(100分)
  • 原文地址:https://www.cnblogs.com/actanble/p/6713457.html
Copyright © 2020-2023  润新知