转载请注明出处: http://renjie120.iteye.com/
1.java中的数组和list的排序,反序,以及互换问题
public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("6"); list.add("5"); list.add("3"); list.add("1"); list.add("2"); list.add("4"); Collections.sort(list); Collections.reverse(list); String[] str = list.toArray(new String[list.size()]); // 不转型也可以通过 //下面的是多余的类型转换!! String[] str2 = (String[])list.toArray(new String[list.size()]); List list3 = Arrays.asList(str); //数组转换成list; //Arrays.sort(str); list 有 正排序和 反排序 Arrays 只有正排序 for (int i=0;i<str.length;i++){ System.out.println("list->"+i+":"+str[i]); } for (int i=0;i<list3.size();i++){ System.out.println("list->"+i+":"+list3.get(i)); } }
2.日期相关函数:
package test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class DateTool { /** * 返回日期格式.默认是'yyyy-MM-dd'. * * @param date * @return */ public static String toString(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } //在指定日期间隔的天数 public static String afterToday(Date dd,int days) { Date d = afterAnyDay(dd, days); GregorianCalendar ca = new GregorianCalendar(); ca.setTime(d); int y = ca.get(Calendar.YEAR); int m = ca.get(Calendar.MONTH); int ddd = ca.get(Calendar.DAY_OF_MONTH); return new StringBuilder().append(y).append("-").append(m + 1) .append("-").append(ddd).toString(); } //指定日期之后的任意一天 public static Date afterAnyDay(Date date, int days) { if (date == null) return null; Date newDate = new Date(); long tp = date.getTime(); tp = tp + days * ONEDAYMILLISECONDS; newDate.setTime(tp); return newDate; } public static Date getDate(String dateStr, String formateStr) { SimpleDateFormat formatter2 = new SimpleDateFormat(formateStr); Date date = new Date(); try { date = formatter2.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 返回指定日期格式的字符串 * * @param formate * @return */ public static String toString(Date date, String formate) { SimpleDateFormat sdf = new SimpleDateFormat(formate); return sdf.format(date); } /** * 得到指定年份,月份,第几天的date对象. * * @param year * @param month * (1到12之间整数) * @param day * @return */ public static Date getDate(int year, int month, int day) { GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day); return calendar.getTime(); } /** * 得到日期所对应的年. * * @return */ public static int getYear(Date date) { GregorianCalendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.YEAR); } /** * 得到月份. * * @return */ public static int getMonth(Date date) { GregorianCalendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.MONTH); } /** * 得到一年的第几天. * * @return */ public static int getDayOfYear(Date date) { GregorianCalendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.DAY_OF_YEAR); } /** * 得到一月里面的第几天. * * @return */ public static int getDayOfMonth(Date date) { GregorianCalendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.DAY_OF_MONTH); } /** * 得到周几. * * @return */ public static int getDayOfWeek(Date date) { GregorianCalendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.DAY_OF_WEEK); } /** * 得到某年中某星期的指定星期几. * * @param year * @param week * @param day * 为1到7之间整数:1-sun-->7-sta * @return */ public static Date getDayInThisWeek(int year, int week, int day) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.WEEK_OF_YEAR, week); cal.set(Calendar.DAY_OF_WEEK, day); return cal.getTime(); } /** * 得到日期是在一年的第几个星期. * * @param date * @return */ public static int getWeekOfYear(Date date) { GregorianCalendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.WEEK_OF_YEAR); } /** * 得到两个日期的时间间隔 * * @param date1 * @param date2 * @return */ public static long getTimeInterval(Date date1, Date date2) { return date1.getTime() - date2.getTime(); } /** * 得到两个日期的间隔天数. * * @param date1 * @param date2 * @return */ public static int getDayInterval(Date date1, Date date2) { return (int) ((date1.getTime() - date2.getTime()) / ONEDAYMILLISECONDS); } /** * 得到几天以后的某一天. * * @param days * 可以为负数 * @return */ public static Date afterAnyDay(Date date, int days) { if(date==null) return null; Date newDate = new Date(); long tp = date.getTime(); tp = tp + days * ONEDAYMILLISECONDS; newDate.setTime(tp); return newDate; } /** * 得到起始日期之后的某年(某月)(某日)的新日期 * * @param date * 起始日期 * @param years * 年份间隔 * @param months * 月份间隔 * @param days * 天数间隔 * @return */ public static Date afterAnyDay(Date date, int years, int months, int days) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, years); cal.add(Calendar.MONTH, months); cal.add(Calendar.DATE, months); return cal.getTime(); } /** * 返回某一年的某月的天数. * * @param year * @param month * @return */ public static int maxDayInMonth(int year, int month) { Calendar time = Calendar.getInstance(); // 必须先clear一下,因为默认会得到当前系统时间 time.clear(); time.set(Calendar.YEAR, year); time.set(Calendar.MONTH, month - 1); return time.getActualMaximum(Calendar.DAY_OF_MONTH); } /** * 返回一年里面某一周的开始日期. * @param year * @param week * @return * @throws ParseException */ public static Date getWeekStart(int year,int week) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy w"); Date start = null; try { start = sdf.parse(year+" "+week); } catch (ParseException e) { e.printStackTrace(); } return start; } /** * 返回一年里面某一周的结束的日期. * @param year * @param week * @return * @throws ParseException */ public static Date getWeekEnd(int year,int week){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy w"); Date end = null; try { end = sdf.parse(year+" "+week); } catch (ParseException e) { e.printStackTrace(); } return afterAnyDay(end,6); } /** * 返回现在. * * @return */ public static Date now() { return new Date(); } /** * 将日期格式转换为日历. * * @param date * @return */ public static Calendar dateToCalendar(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal; } /** * 将日历转换为日期. * * @param cal * @return */ public static Date calendarToDate(Calendar cal) { return cal.getTime(); } public static final long ONEDAYSECONDS = 86400; public static final long ONEDAYMILLISECONDS = 86400000; /** * @param args */ public static void main(String[] args) { Date now = DateTool.now(); System.out.println("今天日期是:" + DateTool.toString(now)); System.out.println("现在是:" + DateTool.toString(now, "yyyy-MM-dd HH:mm:ss")); System.out.println("今天星期是:" + DateTool.toString(now, "E") + ",是本周的第" + DateTool.getDayOfWeek(now) + "天!"); System.out.println("40天之后是:" + DateTool.toString(DateTool.afterAnyDay(now, 40))); Date endDate = DateTool.getDate(2011, 7, 15); System.out.println("距离还有:" + DateTool.getDayInterval(now, endDate) + "天到20100715"); String yearNum = DateTool.toString(now, "yyyy"); String weekNum = DateTool.toString(now, "w"); System.out.println("今天是:一年的第几个星期::" + weekNum); System.out.println("本周的第一天是"+DateTool.toString(getWeekStart(Integer.parseInt(yearNum),Integer.parseInt(weekNum)))); System.out.println("本周的最后一天是"+DateTool.toString(getWeekEnd(Integer.parseInt(yearNum),Integer.parseInt(weekNum)))); } }
3.关于double类型的运算,特别是精度的问题:
import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; public class Tool { private static DecimalFormat df = new DecimalFormat("#######.#####"); /** * 减法 * @param d1 * @param d2 * @return */ public static double subtract(double d1, double d2) { BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return Double.parseDouble(df.format(b1.subtract(b2).doubleValue())); } /** * 自定义运算法则的除法运算. * @param d1 * @param d2 * @param scale 精度 * @param mode * @return */ public static double divide(double d1, double d2, int scale, RoundingMode mode) { BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return Double.parseDouble(df.format(b1.divide(b2, scale, mode) .doubleValue())); } /** * 四舍五入的除法运算. * @param d1 * @param d2 * @param scale 精度 * @return */ public static double divide(double d1, double d2, int scale ) { BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return Double.parseDouble(df.format(b1.divide(b2, scale, RoundingMode.HALF_UP) .doubleValue())); } public static double multiply(double d1, double d2) { BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return Double.parseDouble(df.format(b1.multiply(b2).doubleValue())); } public static double add(double d1, double d2) { BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return Double.parseDouble(df.format(b1.add(b2).doubleValue())); } }
相关推荐
通过上述函数的应用,可以实现对日期的各种复杂操作,如计算两个日期之间的差异、获取特定日期等。这些功能对于数据分析、报表生成等场景非常有用。希望本文介绍的这些函数能够帮助大家更好地理解和掌握SQL Server中...
在这本《Java面试集锦: Core Java Essentials》中,作者Arulkumaran Kumaraswami Pillai和Sivayini Arulkumaran深入探讨了Java平台、语言、类、对象、面向对象概念与原理、数据结构、算法和模式匹配基础,为读者准备...
12. **Java 8新特性**:Java 8引入了Lambda表达式、函数式编程、Stream API、日期时间API等新特性,提升了代码的简洁性和效率。 13. **内存管理和垃圾回收**:Java的自动内存管理机制,包括堆内存、栈内存和方法区...
"java经典小程序-函数小程序"这个资源集锦可能是为了帮助学习者深入理解和掌握Java中的函数编程概念。函数在Java中是代码组织的基本单元,用于执行特定任务。下面,我们将详细探讨与Java函数程序相关的知识点。 1. ...
Java 中常用的字符串函数集锦 Java 中字符串是连串的字符,但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java 将字符串作为 String 类型对象来处理。将字符串作为内置的对象处理允许 Java 提供十分...
《JAVA案例开发集锦》是一本专注于Java编程实践的资源集合,它包含了多个精心设计的实例,旨在帮助读者深入理解Java语言的特性和应用。这本书的内容涵盖了从基础语法到高级特性,从简单程序到复杂系统的设计,是学习...
10. **Java 8及更高版本的新特性**:Lambda表达式、函数式接口、Stream API、Optional类、日期时间API等,这些都是现代Java开发的重要组成部分。 11. **Spring框架**:作为Java企业应用最广泛的技术,Spring的IoC...
【Java经典项目集锦】是Java编程学习的重要资源集合,涵盖了多个Java开发的经典案例和实践项目,旨在帮助Java初学者和进阶者深入理解和应用Java技术。这些项目不仅能够提升编程技能,还能够锻炼实际问题解决能力,...
Java笔试题集锦主要涵盖了Java基础、Web技术以及Servlet等相关知识点。以下是对这些知识点的详细说明: 1. **MVC模式**:Model-View-Controller(MVC)是一种设计模式,用于分离应用程序的业务逻辑、用户界面和控制...
### Java常见问题集锦 #### 1. Java2 (JDK 1.2) 的环境配置 - **问题描述**:如何在不同操作系统上正确配置Java2(即JDK 1.2)的环境变量? - **解决方案**: - **Solaris平台**: - 设置`JAVA_HOME`为Java2的...
Java技术文章集锦是一个丰富的资源库,包含了大量关于Java编程的知识点,对于正在学习或已经从事Java开发的人员来说,这是一个宝贵的参考资料。这个压缩包文件中的每一篇文章都可能涵盖了一个或多个Java技术主题,让...
在Java面试中,面试官通常会关注候选人的基础知识、编程能力、设计模式、并发处理以及框架应用等方面。以下是根据题目提供的部分资料整理的一些关键知识点: 1. **面向对象的特征**:封装、继承、多态。面向对象...
【标题】"基于NetBeans开发的Java应用程序集锦6"主要涵盖了使用NetBeans IDE进行Java应用程序开发的一些实例和实践。NetBeans是一个强大的开源集成开发环境,尤其适合Java开发者,提供了丰富的功能,包括代码编辑、...
【标题】"基于NetBeans开发的Java应用程序集锦7"揭示了如何利用NetBeans IDE进行Java应用程序的开发,特别是针对J2ME平台的项目。这个集合包含了一系列初级阶段的实例,旨在帮助初学者掌握Java编程基础,特别是对于...
Java是一种广泛应用的高级编程语言,由Sun Microsystems在1995年发布,其设计目标是实现跨平台的可移植性和高效性。Java以其面向对象的特性、简单的语法、丰富的类库以及内置的安全机制赢得了广大开发者青睐。以下是...
**Java与NetBeans开发平台简介** Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植性等特点闻名。...总之,"基于NetBeans开发的Java应用程序集锦1"为Java初学者提供了一个全面的学习起点。
在这个"Oracle日期函数集锦"中,我们将深入探讨一系列常用的Oracle日期函数及其用法。 首先,我们来看日期数据的常见格式: 1. `Y`、`YY`、`YYY`:分别表示年份的最后一位、两位和三位。例如,`to_char(sysdate,'Y...
### Java面试问题集锦 #### 一、运行程序之前: ##### Path与classpath图解 - **Path**:指的是操作系统环境变量中的PATH,它定义了系统查找可执行文件的路径列表。当用户在命令行中输入一个命令时,系统会在PATH...