GVKun编程网logo

计算日期之间的天数差异(计算日期之间的天数差异怎么算)

15

如果您想了解计算日期之间的天数差异的相关知识,那么本文是一篇不可错过的文章,我们将对计算日期之间的天数差异怎么算进行全面详尽的解释,并且为您提供关于Android计算两个日期之间的天数、bash–如何

如果您想了解计算日期之间的天数差异的相关知识,那么本文是一篇不可错过的文章,我们将对计算日期之间的天数差异怎么算进行全面详尽的解释,并且为您提供关于Android计算两个日期之间的天数、bash – 如何找到两个日期之间的天数差异?、C++ 练习 | 计算两日期之间天数差、Java 中计算两个字符串日期之间或当前时间与指定时间的天数差的有价值的信息。

本文目录一览:

计算日期之间的天数差异(计算日期之间的天数差异怎么算)

计算日期之间的天数差异(计算日期之间的天数差异怎么算)

在我的代码中,日期之间的差异是错误的,因为它应该是38天而不是8天。我该如何解决?

package random04diferencadata;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Random04DiferencaData {

    /**
     * http://www.guj.com.br/java/9440-diferenca-entre-datas
     */
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm dd/mm/yyyy");
        try {
            Date date1 = sdf.parse("00:00 02/11/2012");
            Date date2 = sdf.parse("10:23 10/12/2012");
            long differenceMilliSeconds = date2.getTime() - date1.getTime();
            System.out.println("diferenca em milisegundos: " + differenceMilliSeconds);
            System.out.println("diferenca em segundos: " + (differenceMilliSeconds / 1000));
            System.out.println("diferenca em minutos: " + (differenceMilliSeconds / 1000 / 60));
            System.out.println("diferenca em horas: " + (differenceMilliSeconds / 1000 / 60 / 60));
            System.out.println("diferenca em dias: " + (differenceMilliSeconds / 1000 / 60 / 60 / 24));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

Android计算两个日期之间的天数

Android计算两个日期之间的天数

我编写了以下代码来查找两个日期之间的日期

    startDateValue = new Date(startDate);
    endDateValue = new Date(endDate);
    long diff = endDateValue.getTime() - startDateValue.getTime();
    long seconds = diff / 1000;
    long minutes = seconds / 60;
    long hours = minutes / 60;
    long days = (hours / 24) + 1;
    Log.d("days","" + days);

当开始日期和结束日期分别是2/3/2017和3/3/2017时,显示的天数是29.尽管它们是同一天,但显示的是1.(请假的天数。如果请假一天,他必须选择相同的开始日期和结束日期。因此,在这种情况下,他请了两天假。

我究竟做错了什么?感谢您的时间。

注意:请不要使用日期构造函数。检查下面接受的答案。使用simpledateformat或Joda时间。不推荐使用日期构造函数。

bash – 如何找到两个日期之间的天数差异?

bash – 如何找到两个日期之间的天数差异?

A =“2002-20-10”
B =“2003-22-11”

如何找到两个日期之间的天数差异?

如果你有GNU日期,它允许打印任意日期的表示(-d选项)。
在这种情况下,将EPOCH之后的日期转换为秒,减去并除以24 * 3600。

或者你需要一个便携式的方式?

C++ 练习 | 计算两日期之间天数差

C++ 练习 | 计算两日期之间天数差

  1 #include<iostream>
  2 #include<string>
  3 #include<cstring>
  4 using namespace std;
  5 
  6 class Date
  7 {
  8 private:
  9     int year;
 10     int month;
 11     int day;
 12 public:
 13     void get()
 14     {
 15         int a,b,c;
 16         cin>>a;
 17         getchar();
 18         cin>>b;
 19         getchar();
 20         cin>>c;
 21         year=a;
 22         month=b;
 23         day=c;
 24         return;
 25     }
 26     friend int days(Date a,Date b);
 27 };
 28 
 29 int days(Date a,Date b)
 30 {
 31     int day1=0;
 32     Date temp;
 33     if((a.year<b.year)||((a.year==b.year)&&(a.month<b.month))||((a.year==b.year)&&(a.month==b.month)&&(a.day<b.day)))
 34     {
 35         temp=a;
 36         a=b;
 37         b=temp;//保证a比b日期靠后
 38     }
 39     if(a.year!=b.year)
 40     {
 41         day1+=(a.year-b.year-1)*365;//不考虑闰年和不完整年的整年天数
 42         day1+=((((a.year-1)/4) - ((a.year-1)/100) + ((a.year-1)/400))-(((b.year-1)/4) - ((b.year-1)/100) + ((b.year-1)/400)));//期间闰年天数
 43     for(int i=b.month;i<=12;i++)
 44     {
 45         switch(i)
 46         {
 47             case 1:
 48             {
 49                 day1+=31;
 50                 break;
 51             }
 52             case 2:
 53             {
 54                 day1+=28;
 55                 break;
 56             }
 57             case 3:
 58             {
 59                 day1+=31;
 60                 break;
 61             }
 62             case 4:
 63             {
 64                 day1+=30;
 65                 break;
 66             }
 67             case 5:
 68             {
 69                 day1+=31;
 70                 break;
 71             }
 72             case 6:
 73             {
 74                 day1+=30;
 75                 break;
 76             }
 77             case 7:
 78             {
 79                 day1+=31;
 80                 break;
 81             }
 82             case 8:
 83             {
 84                 day1+=31;
 85                 break;
 86             }
 87             case 9:
 88             {
 89                 day1+=30;
 90                 break;
 91             }
 92             case 10:
 93             {
 94                 day1+=31;
 95                 break;
 96             }
 97             case 11:
 98             {
 99                 day1+=30;
100                 break;
101             }
102             case 12:
103             {
104                 day1+=31;
105                 break;
106             }
107         }
108     }
109     day1-=b.day;
110     for(int i=a.month-1;i>=1;i--)
111     {
112         switch(i)
113         {
114             case 1:
115             {
116                 day1+=31;
117                 break;
118             }
119             case 2:
120             {
121                 day1+=28;
122                 break;
123             }
124             case 3:
125             {
126                 day1+=31;
127                 break;
128             }
129             case 4:
130             {
131                 day1+=30;
132                 break;
133             }
134             case 5:
135             {
136                 day1+=31;
137                 break;
138             }
139             case 6:
140             {
141                 day1+=30;
142                 break;
143             }
144             case 7:
145             {
146                 day1+=31;
147                 break;
148             }
149             case 8:
150             {
151                 day1+=31;
152                 break;
153             }
154             case 9:
155             {
156                 day1+=30;
157                 break;
158             }
159             case 10:
160             {
161                 day1+=31;
162                 break;
163             }
164             case 11:
165             {
166                 day1+=30;
167                 break;
168             }
169             case 12:
170             {
171                 day1+=31;
172                 break;
173             }
174         }
175     }
176     day1+=a.day;
177     if(((b.year%4==0&&b.year%100!=0)||(b.year%400==0))&&(b.month>2))
178         day1-=1;
179     if(((a.year%4==0&&a.year%100!=0)||(a.year%400==0))&&(a.month>2))
180         day1+=1;
181     }
182     else
183     {
184         for(int i=b.month;i<a.month;i++)
185         {
186             switch(i)
187             {
188                 case 1:
189                 {
190                     day1+=31;
191                     break;
192                 }
193                 case 2:
194                 {
195                     day1+=28;
196                     break;
197                 }
198                 case 3:
199                 {
200                     day1+=31;
201                     break;
202                 }
203                 case 4:
204                 {
205                     day1+=30;
206                     break;
207                 }
208                 case 5:
209                 {
210                     day1+=31;
211                     break;
212                 }
213                 case 6:
214                 {
215                     day1+=30;
216                     break;
217                 }
218                 case 7:
219                 {
220                     day1+=31;
221                     break;
222                 }
223                 case 8:
224                 {
225                     day1+=31;
226                     break;
227                 }
228                 case 9:
229                 {
230                     day1+=30;
231                     break;
232                 }
233                 case 10:
234                 {
235                     day1+=31;
236                     break;
237                 }
238                 case 11:
239                 {
240                     day1+=30;
241                     break;
242                 }
243                 case 12:
244                 {
245                     day1+=31;
246                     break;
247                 }
248             }
249         }
250         day1+=a.day;
251         day1-=b.day;
252         if(b.month==2&&b.day==29)
253             day1++;
254         if(((a.year%4==0&&a.year%100!=0)||(a.year%400==0))&&(b.month<=2&&b.day!=29&&a.month>2))
255         {
256             day1++;
257         }
258     }
259     return day1;
260 }
261 
262 int main()
263 {
264     Date y1,y2;
265     y1.get();
266     y2.get();
267     cout<<days(y1,y2);
268     return 0;
269 }

 

Java 中计算两个字符串日期之间或当前时间与指定时间的天数差

Java 中计算两个字符串日期之间或当前时间与指定时间的天数差

 1  public static void main(String[] args) throws ParseException {
 2         /**
 3          * 获取当前时间
 4          *
 5          */
 6         Date date = new Date();
 7         /**转换提日期输出格式*/
 8         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 9 
10 
11         String a = "2020-01-01"; // 时间字符串
12         String b = dateFormat.format(date);
13 
14         Long between_dayInteger = between_days(a, b);
15 
16         System.out.println(between_dayInteger);
17 
18     }
19 
20     public static Long between_days(String a, String b) {
21 
22         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");// 自定义时间格式
23 
24         Calendar calendar_a = Calendar.getInstance();// 获取日历对象
25         Calendar calendar_b = Calendar.getInstance();
26 
27         Date date_a = null;
28         Date date_b = null;
29 
30         try {
31             date_a = simpleDateFormat.parse(a);//字符串转Date
32             date_b = simpleDateFormat.parse(b);
33             calendar_a.setTime(date_a);// 设置日历
34             calendar_b.setTime(date_b);
35         } catch (ParseException e) {
36             e.printStackTrace();//格式化异常
37         }
38 
39         long time_a = calendar_a.getTimeInMillis();
40         long time_b = calendar_b.getTimeInMillis();
41 
42         long between_days = (time_b - time_a) / (1000 * 3600 * 24);//计算相差天数
43 
44         return between_days;
45     }

我们今天的关于计算日期之间的天数差异计算日期之间的天数差异怎么算的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android计算两个日期之间的天数、bash – 如何找到两个日期之间的天数差异?、C++ 练习 | 计算两日期之间天数差、Java 中计算两个字符串日期之间或当前时间与指定时间的天数差的相关信息,请在本站查询。

本文标签: