日期函数的生成原理[本文无技术含量,单纯为了记录一个纪念日]
本文档为博主便于记录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的知识,也了解了电商的一些基本课程。
浙公网安备 33010602011771号