用Java编写一个日期查询程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java编写一个日期查询程序相关的知识,希望对你有一定的参考价值。
用户随便输入一个年份,然后再输入一个数字。
系统进行判断,求出这个数字所代表的日期。
如,2010,20
即2010年1月20
P.S主要就是闰年要进行多一步的判断
果断求代码
如果是2010,32
就是2010年2月1日
import java.util.*;
import java.io.*;
public class Datte
public void intt()//判断输入值的合法性
while(b)
System.out.print(" ");
try
bu = new BufferedReader(new InputStreamReader(System.in));
in = bu.readLine();
in = in.trim();
catch(IOException e)
e.printStackTrace();
if(in.equals(""))System.out.println(" No Number Init entered – try again");
else
inn = in.split(",");
try
year = Integer.parseInt(inn[0]);
day = Integer.parseInt(inn[1]);
catch(ArrayIndexOutOfBoundsException e)
catch(NumberFormatException e)
if(in.matches("[0-9]1,,[0-9]1,"))
b = false;
else
System.out.println(" ERROR! Please try again");
public void change(int y,int d)//转换和打印输出
GregorianCalendar ca =new GregorianCalendar();
ca.set(Calendar.DAY_OF_YEAR,d);
ca.set(Calendar.YEAR,y);
System.out.print("\n The Date: ");
System.out.println(ca.get(Calendar.YEAR)+"年"+(ca.get(Calendar.MONTH)+1)+"月"+ca.get(Calendar.DAY_OF_MONTH)+"日");
public static void main(String[] args)
System.out.println(" Welcome to the System!");
while(b)
System.out.print("\n Please Enter the Value(2010,32):\n");
new Datte().intt();
new Datte().change(year,day);
while(bb)
System.out.print("\n Continue or Quit(c/q):");
try
bu = new BufferedReader(new InputStreamReader(System.in));
in = bu.readLine();
in = in.trim();
catch(IOException e)
e.printStackTrace();
if(in.equals(""))
System.out.print("\n No selection entered. Please try again");
bb = true;
else if(in.equalsIgnoreCase("c"))b = true;bb = false;
else if(in.equalsIgnoreCase("q"))b = false;bb = false;
else
System.out.print("\n Invalid code!Please try again");
bb = true;
bb = true ;
private static int year;
private static int day;
private static boolean b = true;
private static boolean bb = true;
private static BufferedReader bu,br;
private String[] inn = new String[2];
private static String in;
整理一下代码就行了。
希望能对你有帮助。O(∩_∩)O哈哈~本回答被提问者采纳 参考技术B 这个…… 为什么不能是2010年2月20??
java中计算两个日期之间天数的程序设计。
1 //用java编写出一个以下方法计算两个日期之间天数的程序设计。 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 public class Demo4 { 7 public static void main(String[] args) { 8 try { 9 System.out.println(相差天数("2016-11-30", "2016-5-31")); 10 } catch (Exception e) { 11 e.printStackTrace(); 12 } 13 } 14 15 private static Pattern p = Pattern.compile("(\\d{4})-(\\d{1,2})-(\\d{1,2})"); 16 17 public static int 相差天数(String a, String b) throws Exception { 18 Matcher m = p.matcher(a); 19 if (!m.matches()) 20 throw new Exception(); 21 int y1 = Integer.parseInt(m.group(1)); 22 int m1 = Integer.parseInt(m.group(2)); 23 int d1 = Integer.parseInt(m.group(3)); 24 m = p.matcher(b); 25 if (!m.matches()) 26 throw new Exception(); 27 int y2 = Integer.parseInt(m.group(1)); 28 int m2 = Integer.parseInt(m.group(2)); 29 int d2 = Integer.parseInt(m.group(3)); 30 return 相差天数(y1, m1, d1, y2, m2, d2); 31 } 32 33 public static int 相差天数(int y1, int m1, int d1, int y2, int m2, int d2) { 34 return 总第几天(y1, m1, d1) - 总第几天(y2, m2, d2); 35 } 36 37 public static int 总第几天(int y, int m, int d) { 38 int a = (y - 1) * 365 + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400; 39 return a + 年第几天(y, m, d); 40 } 41 42 public static int 年第几天(int y, int m, int d) { 43 return 闰年(y) ? 润年月前天数[m] + d : 平年月前天数[m] + d; 44 } 45 46 public static boolean 闰年(int 年) { 47 return 年 % 400 == 0 || (年 % 4 == 0 && 年 % 100 != 0); 48 } 49 50 private static final int[] 平年月天数 = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; 51 52 private static final int[] 平年月前天数 = new int[14], 润年月前天数 = new int[14]; 53 static { 54 int n = 0; 55 for (int i = 1; i <= 12; i++) { 56 平年月前天数[i] = n; 57 润年月前天数[i] = i > 2 ? n + 1 : n; 58 n += 平年月天数[i]; 59 } 60 平年月前天数[13] = n; 61 润年月前天数[13] = n + 1; 62 } 63 }
以上是关于用Java编写一个日期查询程序的主要内容,如果未能解决你的问题,请参考以下文章