计算两个日期之间的间隔,每个日期两列

时间:2018-06-24 19:01:16

标签: excel time

我需要计算一个时间间隔,其中我的数据按以下方式排列: 我在A列中有事件开始的日期,在B列中有事件的小时:分钟。对于C,带有事件结束日期;对于D,带有小时:分钟结束事件。 我想以分钟为单位计算开始和结束之间的差异。开始日期可以是不同的日期和月份,所以我不能只减去时间。

2 个答案:

答案 0 :(得分:2)

要在分钟内获得答案,请使用:

=24*60*((C1+D1)-(A1+B1))

enter image description here

答案 1 :(得分:1)

在Excel中,整数是天,小数点是一天中的时间。
考虑到这一点:

import java.util.* ;
import java.io.BufferedReader ;
import java.io.InputStreamReader ;

public class MaximumSumTorus
{
    public static void main(String args[]) throws Exception
    {
        BufferedReader bro = new BufferedReader(new InputStreamReader(System.in)) ;
        int T = Integer.parseInt(bro.readLine().trim()) ;
        for(int t=0;t<T;t++)
        {
            int N = Integer.parseInt(bro.readLine().trim()) ;
            int[][] A = new int[N][N] ;
            for(int i=0;i<N;i++)
            {
                String[] S = bro.readLine().split(" +") ;
                for(int j=0;j<N;j++)
                {
                    A[i][j] = Integer.parseInt(S[j]) ;
                }
            }
            System.out.println(solve(A)) ;
        }
    }
    static int solve(int[][] M)
    {
        int[][] M2 = doubleMatrix(M) ;
        toRangeMatrix(M2) ;
        return(maxInMatrix(M2)) ;
    }
    static int[][] doubleMatrix(int[][] M)
    {
        int[][] M2 = new int[2*M.length][2*M.length] ;
        for(int i=0;i<M.length;i++)
        {
            for(int j=0;j<M[0].length;j++)
            {
                M2[i][j] = M[i][j] ;
                M2[i+M.length][j] = M[i][j] ;
                M2[i][j+M.length] = M[i][j] ;
                M2[i+M.length][j+M.length] = M[i][j] ;
            }
        }
        return M2 ;
    }
    static void toRangeMatrix(int[][] M)
    {
        for(int i=0;i<M.length;i++)
        {
            for(int j=0;j<M[0].length;j++)
            {
                if(i>0) M[i][j]+=M[i-1][j] ;
                if(j>0) M[i][j]+=M[i][j-1] ;
                if(i>0 && j>0) M[i][j]-=M[i-1][j-1] ;
            }
        }
    }
    static int maxInMatrix(int[][] M)
    {
        int maxInMatrix = Integer.MIN_VALUE ;
        for(int i=0;i<M.length/2;i++)
        {
            for(int j=0;j<M.length/2;j++)
            {
                for(int k=i;k-i<M.length/2;k++)
                {
                    for(int l=j;l-j<M.length/2;l++)
                    {
                        int subRect = M[k][l] ;
                        if(i>0) subRect -= M[i-1][l] ;
                        if(j>0) subRect -= M[k][j-1] ;
                        if(i>0 && j>0) subRect+=M[i-1][j-1] ;
                        maxInMatrix = Math.max(subRect,maxInMatrix) ;
                    }
                }
            }
        }
        return maxInMatrix ;
    }
}

然后,您需要设置单元格的格式以适合您的需求。

编辑:仅作说明,您可以将格式设置为“自定义”,并使用=(C1+D1)-(A1+B1) 来汇总分钟。