zoukankan      html  css  js  c++  java
  • 雷达数据文件缺报时段判断程序

    package fileTest;

    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.ArrayList;
    import java.util.List;


    public class RadarTest {
        public static void main(String[] args) {
            
            String str = "D:\radar";
            
            //获取文件名数组
            String[] strArray = getFileName(str);
            
            //调用getHourNoData方法输出无数据时次
            //getHourNoData(strArray);
            
            //调用getTimeslotNoData方法输出无数据时间段
            getTimeslotNoData(strArray);
        }

        //该方法得到无数据时次
        private static void getHourNoData(String[] strArray) {
            
            String ymd = null;
            for (String s : strArray){
                // 获取表示年月日的字符串
                ymd = s.substring(0, 8);
            }
            
            int[] array = new int[24];
            
            for(int i=0; i<24; i++){
                array[i] = i;
            }
            
             List<Integer> list1 = new ArrayList<Integer>();   
            
            for(int arr:array){
                 list1.add(arr);
            }
             //调用getHourList方法得到所有文件的时次集合
            List<Integer> list2 = getHourList(strArray);
            
            for (Integer arr : list2) {  
                 if (list1.contains(arr)) {  
                      list1.remove(arr);  
                 }  
             }  
            
            for(Integer in : list1){
                System.out.println(ymd+"-"+in+"时无数据");
            }
        }

        //该方法得到所有文件的时次集合
        private static List<Integer> getHourList(String[] strArray){
            
            List<Integer> list = new ArrayList<Integer>();
            
            for(String s : strArray){
                // 获取表示小时的字符串
                String strHour = s.substring(9, 11);
                
                int hour = Integer.parseInt(strHour);
                
                list.add(hour);
            }
            return list;
        }
        
        //该方法得到没有数据的时间段
        private static void getTimeslotNoData(String[] strArray) throws NumberFormatException {
            
            for(int i=0;i<24;i++){
                
                List<Integer> list = new ArrayList<Integer>();
                
                String ymd = null;
                // 遍历
                for (String s : strArray) {
                    // 获取表示(年月日_)的字符串
                    ymd = s.substring(0, 9);
                    // 获取表示小时的字符串
                    String strHour = s.substring(9, 11);
                    
                    int hour = Integer.parseInt(strHour);
                    // 获取表示分钟和秒的字符串
                    String strms = s.substring(11, 15);
                    
                    int ms = Integer.parseInt(strms);
                    
                    if(hour == i){
                        list.add(ms);
                    }    
                }
                
                int num1 = 0;
                int num2 = 0;
                int num3 = 0;
                int num4 = 0;
                int num5 = 0;
                int num6 = 0;
                
                for(Integer num : list){
                    //判断是否在时间段内
                    if(num>=0 && num<960){
                        num1 += 1;
                    }
                    if(num>=1000 && num<1959){
                        num2 += 1;
                    }
                    if(num>=2000 && num<2959){
                        num3 += 1;
                    }
                    if(num>=3000 && num<3959){
                        num4 += 1;
                    }
                    if(num>=4000 && num<4959){
                        num5 += 1;
                    }
                    if(num>=5000 && num<5959){
                        num6 += 1;
                    }    
                }
                
                if(num1 == 0){
                    System.out.println(ymd+i+"时0-10分钟内无数据");
                }
                if(num2 == 0){
                    System.out.println(ymd+i+"时10-20分钟内无数据");
                }
                if(num3 == 0){
                    System.out.println(ymd+i+"时20-30分钟内无数据");
                }
                if(num4 == 0){
                    System.out.println(ymd+i+"时30-40分钟内无数据");
                }
                if(num5 == 0){
                    System.out.println(ymd+i+"时40-50分钟内无数据");
                }
                if(num6 == 0){
                    System.out.println(ymd+i+"时50-60分钟内无数据");
                }
                System.out.println("--------------------------");
            }
        }
            
        //该方法得到指定文件夹的所有文件名
        private static String[] getFileName(String s) {
            // 封装判断目录
            File file = new File(s);

            // 获取该目录下所有文件名的String数组
            
            String[] strArray = file.list(new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    
                    return new File(dir, name).isFile() && name.endsWith(".zip");
                }
            });
            return strArray;
        }
    }

  • 相关阅读:
    IOS5,6,7不同版的适配. 强制旋转和自动旋转.
    第3条:多用字面量语法,少用与之等价的方法
    UIViewAnimation警告
    ViewController的生命周期分析和使用
    Chrome浏览器下调试SASS
    Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
    js收集的一些好的题型
    js异步加载 defer和async 比较
    前端知识点
    H5下拉刷新特效demo,动画流畅
  • 原文地址:https://www.cnblogs.com/JeffXia/p/7027322.html
Copyright © 2011-2022 走看看