为什么 javascrpit 计算日期相差天数,要这样写?

作者&投稿:爱新觉罗宝 (若有异议请与网页底部的电邮联系)
用java写一个程序可以计算2个日期之间的天数差。~

import java.util.*;public class MyDate{ int day; int month; int year; public MyDate(){} public MyDate(int day,int month,int year){ this.day = day; this.month = month; this.year = year; } public void funtion(MyDate d){ int newDay = d.day; int newMonth = d.month; int newYear = d.year; Calendar c1 = Calendar.getInstance(); c1.set(newYear,newMonth,newDay); long n1 = c1.getTimeInMillis(); Calendar c2 = Calendar.getInstance(); c2.set(year,month,day); long n2 = c2.getTimeInMillis(); System.out.println( "相差天数为:" + Math.abs((n1 - n2)/24/3600000)); } public static void main(String[] args){ MyDate d1 = new MyDate(1,1,2008); MyDate d2 = new MyDate(2,1,2001); d1.funtion(d2); }}

想写一个代码就把下面标识符改一下就行了import java.util.regex.Matcher;import java.util.regex.Pattern;public class 第几天 {public static void main(String[] args) {try {System.out.println(相差天数("2016-7-30", "2015-7-30"));} catch (Exception e) {e.printStackTrace();}}private static Pattern p = Pattern.compile("(\\d{4})-(\\d{1,2})-(\\d{1,2})");public static int 相差天数(String a, String b) throws Exception {Matcher m = p.matcher(a);if (!m.matches())throw new Exception();int y1 = Integer.parseInt(m.group(1));int m1 = Integer.parseInt(m.group(2));int d1 = Integer.parseInt(m.group(3));m = p.matcher(b);if (!m.matches())throw new Exception();int y2 = Integer.parseInt(m.group(1));int m2 = Integer.parseInt(m.group(2));int d2 = Integer.parseInt(m.group(3));return 相差天数(y1, m1, d1, y2, m2, d2);}public static int 相差天数(int y1, int m1, int d1, int y2, int m2, int d2) {return 总第几天(y1, m1, d1) - 总第几天(y2, m2, d2);}public static int 总第几天(int y, int m, int d) {int a = (y - 1) * 365 + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400;return a + 年第几天(y, m, d);}public static int 年第几天(int y, int m, int d) {return 闰年(y) ? 润年月前天数[m] + d : 平年月前天数[m] + d;}public static boolean 闰年(int 年) {return 年 % 400 == 0 || (年 % 4 == 0 && 年 % 100 != 0);}private static final int[] 平年月天数 = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };private static final int[] 平年月前天数 = new int[14], 润年月前天数 = new int[14];static {int n = 0;for (int i = 1; i 2 ? n + 1 : n;n += 平年月天数[i];}平年月前天数[13] = n;润年月前天数[13] = n + 1;}}

这里是因为,如果直接2002-12-18转换成Date型的话,会报错,因为new Date()不支持yyyy-mm-dd这种格式,所有做了转换,但是这种转换方法太费劲。它用的是new Date('mm-dd-yyyy')这种格式来进行转换,其实有更简单的,就是用new Date('yyyy/mm/dd')这种来进行。使用的时候也简单

new Date(str.split("-").join("/"));
这样就可以直接用了。

function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式
var aDate, oDate1, oDate2, iDays;
oDate1 = new Date(sDate1.split("-").join("/"));//转换为2002/12/18格式
oDate2 = new Date(sDate2.split("-").join("/"));
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24); //把相差的毫秒数转换为天数
return iDays;


湖州市15583652024: 为什么 javascrpit 计算日期相差天数,要这样写? -
舟绍欣美: 这里是因为,如果直接2002-12-18转换成Date型的话,会报错,因为new Date()不支持yyyy-mm-dd这种格式,所有做了转换,但是这种转换方法太费劲.它用的是new Date('mm-dd-yyyy')这种格式来进行转换,其实有更简单的,就是用new Date...

湖州市15583652024: 还是关于javascrpit 的if语句的问题 -
舟绍欣美: if()是判断小括号里的结果.你的理解是是如果i%3如果能整除是true,那是自然数学的理解,其实他是两个过程,就像你的第一个if,它其实做了两步工作,step1)i%3获得一个结果,step2)结果等于0的时候才是整除.第二步判断,其实只计算机只获得了它知道的第一步结果,就是%运算结果为0.计算机程序,只接受完整的过程.所以第一个判断肯定成立,第二个判断,取决于%运算结果中,整型到布尔判断的定义.一般0定义为false,所以与期望相反.自然数学里,这里上下文,%运算的结果为0是true期望,与程序定义的期望相反.计算机是最严格的,它只接受预设好的结果,所以不能智能根据上下文理解你对表达式的期望.从自然数学的角度,两句if都对.

湖州市15583652024: javascrpit中字符串怎么转换成数字 -
舟绍欣美: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number).一些示例如下:代码如下:parseInt(\"1234blue\"); //returns 1234 parseInt(\"0xA\"); //returns 10 parseInt(\"22.5\"); //returns 22 parseInt(\"blue\"); //returns NaN parseInt()方法还有基模式,可以把二进制、八进制

湖州市15583652024: javascrpit - js中如何判断一个list中包含多少个对象 -
舟绍欣美: list 循环时例如<br><br><script><br> $(<br> function(){<br> var array ;<br> $("#tbody tr td").click(function(){<br> $("#tbody tr").removeClass("click");<br> $(this).find("#tbody tr").addClass("click");<br> });<br> $.post(<br> base_path+"/...

湖州市15583652024: javascrpit菜单的问题
舟绍欣美: 二级菜单? <dl> <dt>标题title</dt> <dd>内容content1</dd> <dd>内容content2</dd> </dl>将DD的DISPLAY设置为none,这样就不会显示,当鼠标悬浮到DT的时候, 则设置为block.

湖州市15583652024: 电脑左下角出现这个javascropt:getzhekou0是怎样回事 -
舟绍欣美: 应当是你按这个按钮时,履行getZhekkou0这个方法,但是由于1些缘由(比如:阅读器的设置、方法本身的出错等)而使得这个方法没有履行,所以当你按按钮时没反应

湖州市15583652024: 学JAVA到底学点啥?(找工作) -
舟绍欣美: jsp;框架部分主要是SSH框架,关键是是一定要自己写程序. 3.随着AjAx技术的兴起,javascript.现在公司的要求都是熟练掌握什么,你先要掌握html. 4. 2,那样才能做到真正的理解,这2大部分能否学好很大程度上取决于你的J2SE的基础是否扎实,所以J2SE学一个月而自己不会写代码根本不行.J2EE的范围很广泛,再学J2EE之前1.J2SE学一个月, Myeclipse的使用等知识.J2EE的web部分主要是servlet.一定要自己动手练习程序, web service等技术也是一些公司面试所要求掌握的, css, sql,简单的代码能理解,自己不会写说明你根本没有真正理解代码

湖州市15583652024: 如何创建javascrpit外部的.js文件 -
舟绍欣美: 在dreamweaver里 文件--空白页--JavaScript 如果要是引用外部js文件的话就在你网页的<head>和</head>分别用标签引用JS文件,<script src="你要引用的JS文件路径和名称" type="text/javascript"></script>

湖州市15583652024: java是javascript的简称吗?还是根本就是两个东西? -
舟绍欣美: JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型. Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.

湖州市15583652024: 代码中的错误
舟绍欣美: 呃,这个,是不是显示的结果数字加减的啊,而是字符串的加? javascrpit的变量没有类型,赋值后会更具值的类型来确定变量的类型.但是从网页的FORM中获取的,默认都是string类型.所以不能直接参与运算.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网