zoukankan      html  css  js  c++  java
  • 选定起始时间和结束时间,打印选定时间段类的每一年,每一月,每一天(我自己写的,转载注明版权哦)

    最近做一个控件画图项目,需要提取和处理选定起止年月日时间段内的数据,那首先一步当然是要能编程实现访问选定时间段内的每一年的每个月的每一天,下面是我写的源码,说明一点,每个月我指定31天的,需要用的改一下闰年平年,还有月份的判断。

    选定起始时间和结束时间,打印选定时间段类的每一年,每一月,每一天,

                    String in_begin_date=request.getParameter("begin_date"); //起始日期
                    String in_end_date=request.getParameter("end_date"); //终止日期
    //----------------------日期处理开始----------------------------
                    String str_StartYYYY=in_begin_date.substring(0, 4); //获取起始年
                    String str_EndYYYY=in_end_date.substring(0, 4); //获取起始年
                    String str_StartMM=in_begin_date.substring(5,7);//获取月
                    String str_EndMM=in_end_date.substring(5,7);//获取月
                    String str_StartDD=in_begin_date.substring(8, 10);//获取日
                    String str_EndDD=in_end_date.substring(8, 10);//获取日
                
                    int Int_StartYYYY=Integer.parseInt(str_StartYYYY);
                    int Int_EndYYYY=Integer.parseInt(str_EndYYYY);
                    int Int_StartMM=Integer.parseInt(str_StartMM);
                    int Int_EndMM=Integer.parseInt(str_EndMM);
                    int Int_StartDD=Integer.parseInt(str_StartDD);
                    int Int_EndDD=Integer.parseInt(str_EndDD);
                    
                    int Int_NowYYYY=Integer.parseInt(str_StartYYYY);//当前年,初始值设为起始年
                    int Int_NowMM=Integer.parseInt(str_StartMM);//当前月,初始值设为起始月
                    int Int_NowDD=Integer.parseInt(str_StartDD);//当前日,初始值设为起始日
                    
                    
                    System.out.println(Int_StartYYYY);
                    System.out.println(Int_EndYYYY);
                    System.out.println(Int_StartMM);
                    System.out.println(Int_EndMM);
                    System.out.println(Int_StartDD);
                    System.out.println(Int_EndDD);
                    
                    if(Int_EndYYYY>Int_StartYYYY)//结束年份大于起始年份
                    {
                            do
                            {
                              if(Int_NowYYYY<Int_EndYYYY)//现在年份小于结束年份,每年取12个月,每个月取31天
                              {
                                  do
                                   {
                                      do
                                          {
                                             
                                             System.out.println(Int_NowDD);//test
                                             Int_NowDD=Int_NowDD+1;
                                          }
                                          while(Int_NowDD<=31);//每个月以31天算
                                       Int_NowDD=1;
                                      System.out.println(Int_NowMM);//test
                                      Int_NowMM=Int_NowMM+1;
                         
                                   }
                                   while(Int_NowMM<=12);
                                Int_NowMM=1;
                  }
                  else
    //现在年份等于结束年份,取到结束月,再次判断是否到结束月份,若到就取到结束日,未到则每个月取31天
                    {
                    
                      do
                                   {
                                     if(Int_NowMM<Int_EndMM)
                                     {
                                       do
                                          {
                                             
                                             System.out.println(Int_NowDD);//test
                                             Int_NowDD=Int_NowDD+1;
                                          }
                                          while(Int_NowDD<=31);//每个月以31天算,方便取查询结果集
                                     
                                     }
                                    else{//结束月
                                          do
                                              {
                                                 
                                                 System.out.println(Int_NowDD);//test
                                                 Int_NowDD=Int_NowDD+1;
                                              }
                                              while(Int_NowDD<=Int_EndDD);//结束日
                                     }
                                      Int_NowDD=1;            
                                 System.out.println(Int_NowMM);//test
                                 Int_NowMM=Int_NowMM+1;
                         
                                   }
                                   while(Int_NowMM<=Int_EndMM);
                                Int_NowMM=1;
                    }
                              System.out.println(Int_NowYYYY);//test
                              Int_NowYYYY=Int_NowYYYY+1; 
                            }
                            while(Int_EndYYYY>=Int_NowYYYY);//现在年份与结束年份比较
                            
            }
            else if(Int_EndYYYY==Int_StartYYYY)//起始年份等于结束年份
            {
            
                 if(Int_StartMM<Int_EndMM)//起始月份小于结束月份
                 {
                          do
                          {
                                            if(Int_NowMM<Int_EndMM)//结束月之前的每个月以31天算
                                         {
                                           do
                                              {
                                                 
                                                 System.out.println(Int_NowDD);//test
                                                 Int_NowDD=Int_NowDD+1;
                                              }
                                              while(Int_NowDD<=31);//每个月以31天算,方便取查询结果集
                                         
                                         }
                                         else{//结束月份,直到结束日
                                              do
                                                  {
                                                     
                                                     System.out.println(Int_NowDD);//test
                                                     Int_NowDD=Int_NowDD+1;
                                                  }
                                                  while(Int_NowDD<=Int_EndDD);//结束日
                                         }
                                          Int_NowDD=1;        //每个月完了以后,下个月从一号开始    
                                       System.out.println(Int_NowMM);//test
                                     Int_NowMM=Int_NowMM+1;//下一个月
                          }
                          while(Int_EndMM>=Int_NowMM);
                }
                else if(Int_StartMM==Int_EndMM)//起始月份等于结束月份
                    {
                           if(Int_EndDD>Int_StartDD)//起始日小于结束日
                           {
                              //从起始日到结束日,循环处理
                                  do
                                  {
                                     
                                     System.out.println(Int_NowDD);//test
                                     Int_NowDD=Int_NowDD+1;
                                      
                                  }
                                  while(Int_EndDD>=Int_NowDD);
                             }
                               else if(Int_StartDD==Int_EndDD)
                                   {
                                      
                                   }
                              else
                                  {
                                     System.out.println("提示:输入的起始日必须小于输入的结束日!");
                                  }
                    }
                else//起始月份大于结束月份
                    {
                       System.out.println("提示:输入的起始月份必须小于输入的结束月份!");
                    }                
                                
                
            }
            else//起始年份大于结束年份
              {
                 //提示起始年份必须小于结束年份
                 System.out.println("提示:输入的起始年份必须小于输入的结束年份!");
              }
              
          
    //-------------------日期处理结束---------------------------
  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/yuhuameng/p/3987857.html
Copyright © 2011-2022 走看看