{"id":951,"date":"2018-09-17T18:45:12","date_gmt":"2018-09-17T09:45:12","guid":{"rendered":"https:\/\/chat-messenger.com\/?p=951"},"modified":"2018-12-23T01:52:45","modified_gmt":"2018-12-22T16:52:45","slug":"thang-chenh-lech","status":"publish","type":"post","link":"https:\/\/chat-messenger.com\/vi\/blog\/java\/difference-month","title":{"rendered":"Java: T\u00ednh hi\u1ec7u s\u1ed1 th\u00e1ng gi\u1eefa hai ng\u00e0y."},"content":{"rendered":"<h2 class=\"common_title\"><a name=\"0\">Java: T\u00ednh hi\u1ec7u s\u1ed1 th\u00e1ng gi\u1eefa hai ng\u00e0y.<\/a><\/h2>\n<p>\nTrong Java, c\u00f3 hai<strong>Ch\u00eanh l\u1ec7ch v\u1ec1 s\u1ed1 th\u00e1ng trong ng\u00e0y th\u00e1ng<\/strong>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh m\u1eabu \u0111\u1ec3 t\u00ecm ra c\u00e2u tr\u1ea3 l\u1eddi.<br \/>\nCh\u01b0\u01a1ng tr\u00ecnh m\u1eabu x\u1eed l\u00fd c\u1ea3 tr\u01b0\u1eddng h\u1ee3p ng\u00e0y th\u00e1ng \u0111\u01b0\u1ee3c so s\u00e1nh \u1edf \u0111\u1ecbnh d\u1ea1ng chu\u1ed7i (yyyy\/MM\/dd) v\u00e0 c\u1ea3 \u1edf \u0111\u1ecbnh d\u1ea1ng java.util.Date.\n<\/p>\n<p><strong>Ch\u00eanh l\u1ec7ch v\u1ec1 s\u1ed1 th\u00e1ng<\/strong>Ph\u01b0\u01a1ng ph\u00e1p t\u00ednh to\u00e1n \u0111\u1ec3 t\u00ecm ra gi\u00e1 tr\u1ecb n\u00e0y nh\u01b0 sau:<\/p>\n<ol>\n<li>\u0110\u1ea7u ti\u00ean, h\u00e3y k\u1ebft h\u1ee3p hai ng\u00e0y th\u00e0nh m\u1ed9t ng\u00e0y.<br \/>\n    * S\u1eed d\u1ee5ng Calendar.set(Calendar.DATE, 1).<\/li>\n<li>Ti\u1ebfp theo, ch\u00fang ta s\u1ebd so s\u00e1nh hai ng\u00e0y n\u00e0y \u0111\u1ecbnh k\u1ef3 h\u00e0ng th\u00e1ng.<br \/>\n    * S\u1eed d\u1ee5ng Calendar.add(Calendar.MONTH, 1 ho\u1eb7c -1) \u0111\u1ec3 th\u00eam ho\u1eb7c b\u1edbt m\u1ed9t th\u00e1ng m\u1ed9t l\u1ea7n.<\/li>\n<li>Bi\u1ebfn n\u00e0y \u0111\u1ebfm s\u1ed1 l\u1ea7n ph\u00e9p so s\u00e1nh \u0111\u01b0\u1ee3c l\u1eb7p l\u1ea1i.<\/li>\n<\/ol>\n<p><script type=\"text\/javascript\" src=\"https:\/\/chat-messenger.com\/js\/common.js?dd12sssas2223\" charset=\"UTF-8\"><\/script><br \/>\n<script type=\"text\/javascript\"> writePR(); <\/script><\/p>\n<h2 class=\"common_title\"><a name=\"1\">Ngu\u1ed3n m\u1eabu<\/a><\/h2>\n<p><textarea readonly=\"readonly\" style=\"font-size: 13px;height: 400px;\" class=\"src\" onclick=\"this.focus();this.select()\">\/**<br \/>\n * 2\u3064\u306e\u65e5\u4ed8\u306e\u6708\u6570\u306e\u5dee\u3092\u6c42\u3081\u307e\u3059\u3002<br \/>\n * \u65e5\u4ed8\u6587\u5b57\u5217 strDate1 &#8211; strDate2 \u304c\u4f55\u30f5\u6708\u304b\u3092\u6574\u6570\u3067\u8fd4\u3057\u307e\u3059\u3002<br \/>\n * \u203b\u7aef\u6570\u306e\u65e5\u6570\u306f\u7121\u8996\u3057\u307e\u3059\u3002<br \/>\n *<br \/>\n * @param strDate1    \u65e5\u4ed8\u6587\u5b57\u52171    yyyy\/MM\/dd<br \/>\n * @param strDate2    \u65e5\u4ed8\u6587\u5b57\u52172    yyyy\/MM\/dd<br \/>\n * @return 2\u3064\u306e\u65e5\u4ed8\u306e\u6708\u6570\u306e\u5dee<br \/>\n * @throws ParseException \u65e5\u4ed8\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u304c\u4e0d\u6b63\u306a\u5834\u5408<br \/>\n *\/<br \/>\npublic static int differenceMonth(String strDate1, String strDate2)<br \/>\n    throws ParseException {<br \/>\n    Date date1 = DateFormat.getDateInstance().parse(strDate1);<br \/>\n    Date date2 = DateFormat.getDateInstance().parse(strDate2);<br \/>\n    return differenceMonth(date1,date2);<br \/>\n}<br \/>\n\/**<br \/>\n * 2\u3064\u306e\u65e5\u4ed8\u306e\u6708\u6570\u306e\u5dee\u3092\u6c42\u3081\u307e\u3059\u3002<br \/>\n * java.util.Date \u578b\u306e\u65e5\u4ed8 date1 &#8211; date2 \u304c\u4f55\u30f5\u6708\u304b\u3092\u6574\u6570\u3067\u8fd4\u3057\u307e\u3059\u3002<br \/>\n * \u203b\u7aef\u6570\u306e\u65e5\u6570\u306f\u7121\u8996\u3057\u307e\u3059\u3002<br \/>\n *<br \/>\n * @param date1    \u65e5\u4ed81 java.util.Date<br \/>\n * @param date2    \u65e5\u4ed82 java.util.Date<br \/>\n * @return 2\u3064\u306e\u65e5\u4ed8\u306e\u6708\u6570\u306e\u5dee<br \/>\n *\/<br \/>\npublic static int differenceMonth(Date date1, Date date2) {<br \/>\n    Calendar cal1 = Calendar.getInstance();<br \/>\n    cal1.setTime(date1);<br \/>\n    cal1.set(Calendar.DATE, 1);<br \/>\n    Calendar cal2 = Calendar.getInstance();<br \/>\n    cal2.setTime(date2);<br \/>\n    cal2.set(Calendar.DATE, 1);<br \/>\n    int count = 0;<br \/>\n    if (cal1.before(cal2)) {<br \/>\n        while (cal1.before(cal2)) {<br \/>\n            cal1.add(Calendar.MONTH, 1);<br \/>\n            count&#8211;;<br \/>\n        }<br \/>\n    } else {<br \/>\n        count&#8211;;<br \/>\n        while (!cal1.before(cal2)) {<br \/>\n            cal1.add(Calendar.MONTH, -1);<br \/>\n            count++;<br \/>\n        }<br \/>\n    }<br \/>\n    return count;<br \/>\n}<br \/>\n<\/textarea><\/p>\n<h2 class=\"common_title\"><a name=\"2\">th\u1ef1c thi<\/a><\/h2>\n<p>\u25c6V\u00ed d\u1ee5<\/p>\n<pre class=\"sample_src\">public static void main(String[] args) { int ret = differenceMonth(&quot;2008\/6\/30&quot;,&quot;2008\/6\/1&quot;); System.out.println(&quot;K\u1ebft qu\u1ea3 1 = &quot;+ret); ret = differenceMonth(&quot;2008\/7\/1&quot;,&quot;2008\/6\/3&quot;); System.out.println(&quot;K\u1ebft qu\u1ea3 2 = &quot;+ret); ret = differenceMonth(&quot;2008\/12\/20&quot;,&quot;2008\/6\/1&quot;); System.out.println(&quot;K\u1ebft qu\u1ea3 3 = &quot;+ret); ret = differenceMonth(&quot;2010\/6\/20&quot;,&quot;2008\/6\/1&quot;); System.out.println(&quot;K\u1ebft qu\u1ea3 4 = &quot;+ret); ret = differenceMonth(&quot;2008\/6\/1&quot;,&quot;2008\/7\/1&quot;); System.out.println(&quot;K\u1ebft qu\u1ea3 5 = &quot;+ret); } ret = differenceMonth(&quot;2008\/7\/1&quot;,&quot;2009\/7\/1&quot;); System.out.println(&quot;K\u1ebft qu\u1ea3 6 = &quot;+ret); }\r\n<\/pre>\n<p>\u25c6K\u1ebft qu\u1ea3 th\u1ef1c thi<\/p>\n<pre class=\"console\">K\u1ebft qu\u1ea3 1 = 0 K\u1ebft qu\u1ea3 2 = 1 K\u1ebft qu\u1ea3 3 = 6 K\u1ebft qu\u1ea3 4 = 24 K\u1ebft qu\u1ea3 5 = -1 K\u1ebft qu\u1ea3 6 = -12\r\n<\/pre>\n<p>\nCh\u01b0\u01a1ng tr\u00ecnh m\u1eabu n\u00e0y d\u00e0nh cho Chat&amp;Messenger.<a href=\"\/vi\/thu-cong\/lich-trinh_lich\/lich\/\" title=\"Ch\u1ee9c n\u0103ng qu\u1ea3n l\u00fd l\u1ecbch v\u00e0 th\u1eddi gian bi\u1ec3u\">Ch\u1ee9c n\u0103ng qu\u1ea3n l\u00fd l\u1ecbch v\u00e0 th\u1eddi gian bi\u1ec3u<\/a>T\u00f4i th\u1ef1c s\u1ef1 \u0111ang s\u1eed d\u1ee5ng n\u00f3 trong [ng\u1eef c\u1ea3nh n\u00e0y].<\/p>","protected":false},"excerpt":{"rendered":"<p>Java 2\u3064\u306e\u65e5\u4ed8\u306e\u6708\u6570\u306e\u5dee\u3092\u6c42\u3081\u308b Java \u3067\u30012\u3064\u306e\u65e5\u4ed8\u306e\u6708\u6570\u306e\u5dee\u3092\u6c42\u3081\u308b\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d39\u4ecb\u3057\u307e [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","footnotes":""},"categories":[19],"tags":[],"class_list":["post-951","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/posts\/951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/comments?post=951"}],"version-history":[{"count":4,"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/posts\/951\/revisions"}],"predecessor-version":[{"id":1878,"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/posts\/951\/revisions\/1878"}],"wp:attachment":[{"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/media?parent=951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/categories?post=951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chat-messenger.com\/vi\/wp-json\/wp\/v2\/tags?post=951"}],"curies":[{"name":"trang web","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}