zoukankan      html  css  js  c++  java
  • 无题1

    求jfqsrq 是开始时间 jfzzrq  是结束时间

       统计这些时间  具体要求是

        jfqsrq           j fzzrq

       2008-1-1     2008-3-31

       2008-4-1    2008 -6-30

       2008-8-1    2008-9-31

       2008 -10-1  2009-3-31

    统计结果的应为

       2008-1-1     2008-6-30

       2008-8-1    2009 - 3-31

     拿上一条数据的jfzzrq 和下一条数据的jfqsrq 相比 相差一月或是不差就合并起来

    可用程序和sql语句来实现

    自己写的程序实现

    1 publicstring GetJfmxBzsj(DataTable dt)
    2 {
    3 var result ="";
    4 if (dt ==null)
    5 return result;
    6 elseif (dt.Rows.Count ==1)
    7 {
    8 result = GetSfyf(dt.Rows[0]["jfqsrq"].ToString(), dt.Rows[0]["jfzzrq"].ToString());
    9 }
    10 else
    11 {
    12 int i =0;
    13 while (true)
    14 {
    15 var kssj = Convert.ToDateTime(dt.Rows[i]["jfqsrq"]);
    16 var jssj = Convert.ToDateTime(dt.Rows[i]["jfzzrq"]);
    17 for (; i < dt.Rows.Count -1; i++)
    18 {
    19 var temp = Convert.ToDateTime(dt.Rows[i +1]["jfqsrq"]);
    20 //同年的时候 终止时间 是下条记录的起始时间的上月 则合并 不同年 上年的月份为12 下年为1月 则合并
    21 if ((jssj.Year == temp.Year && jssj.Month +1== temp.Month) || (jssj.Year +1== temp.Year && jssj.Month ==12&& temp.Month ==1))
    22 {
    23 jssj = Convert.ToDateTime(dt.Rows[i +1]["jfzzrq"]);
    24 }
    25 else
    26 {
    27 result +=""+ GetSfyf(kssj.ToString(), jssj.ToString());
    28 i = i +1;
    29 break;
    30 }
    31 }
    32 if (i == dt.Rows.Count -1) //最后一列
    33 {
    34 result +=""+ GetSfyf(dt.Rows[i]["jfqsrq"].ToString(), dt.Rows[i]["jfzzrq"].ToString());
    35 break;
    36 }
    37 }
    38 }
    39 return result;
    40 }
    41
    42
    43 ///
    44 /// 获取缴费月份段
    45 ///
    46 ///开始时间
    47 ///结束时间
    48 ///
    49 publicstring GetSfyf(string start, string end)
    50 {
    51 if (start ==""|| end =="")
    52 return"";
    53 var s = DateTime.Parse(start);
    54 var e = DateTime.Parse(end);
    55 if (s.Year == e.Year && s.Month != e.Month)
    56 {
    57 return e.Year.ToString().Trim() +"年"+"("+ s.Month.ToString().Trim() +"-"+ e.Month.ToString().Trim() +")月";
    58 }
    59 elseif (s.Year == e.Year && s.Month == e.Month)
    60 {
    61 return s.ToString("yyyy年MM月");
    62 }
    63 elseif (s.Year != e.Year)
    64 {
    65 return s.ToString("yyyy年MM月") +"至"+ e.ToString("yyyy年MM月");
    66 }
    67 return"";
    68 }

  • 相关阅读:
    微软紧急安全公告:当心SQL攻击爆发
    婴儿
    感冒了
    System.IO.FileAttributes
    mssql数据库,无法用语句实现“强制还原”功能
    好大的风
    无聊的游戏
    JZOJ 4276【NOIP2015模拟10.28A组】递推
    JZOJ 4289.Mancity
    单词检索(search)
  • 原文地址:https://www.cnblogs.com/beeone/p/2002881.html
Copyright © 2011-2022 走看看