1. 聚能聊>
  2. 话题详情

分享你目前为止最得心应手的一段代码!

如题:分享你目前为止最得心应手的一段代码!
相信搞程序的小伙伴,坑定在个别问题上搞了很久,有时可能放弃了,有时可能用一个吊炸天的逻辑解决了!!这样的东西,要分享出来啊!!!一个人玩代码多没意思,小伙伴需要你有逼格的炫耀啊!!
当然不在于难度哈!!只要是自己苦思冥想出来的都可以晒一晒!

比如我的:以前写得东西已经记不得了,最近遇到过一个问题。
一条数据中有两个字段A,B,A是开始时间,B是结束时间。如果两条数据时间范围有重叠,就要把这两条数据检测出来!
正确范围
_A
错误有重叠,无论几条数据!
_

最后怎么找出这个表里面存在错误重叠的数据呢?大家也可以各抒己见,这是我最后的解决方法。
建立一个日期表,就一个字段,涵盖数据出现的所有范围。
如下表,
_
然后用目标表关联日期表,如果有重复日期,它的count数量就是大于1条!!明白了吗?当然我这里没有单独写上述逻辑代码,而是用的实际代码,工作中要考虑如果同一范围其中一个字段之和不大于1也是正确的。
所以代码如下,可以参考一下,逻辑是一样的。
SESSION.TMP_EMP_X_DEP_CST可以理解要查找错误数据的表,DIM.DIM_SYS_DATE是日期维度表
_`

_


来啦来啦!!
分享你目前为止最得心应手的一段代码!!!


参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    手机话费 x 2

  • 奖品二

    云栖定制电脑包 x 2

40个回答

1

zijiejiang 已获得云栖定制电脑包 复制链接去分享

8年前自己做了个个人网站
是为了学习,也是为了别出心裁,我自己用php写了个人博客性质的网站。那个时候已经有比较好的开源程序了,但是总觉着不如自己写好,完全是一种初学者的热情。
话说,为了显示一个如下效果的日历表。__2018_05_31T14_53_40_498Z
我在网上搜了好多源码,加以研究利用。没有找到合适的,干脆就自己开工写了个吧!QQ_20180531230127
记得当时,日期和星期几老是对不上号。比如今天2018年5月31日星期四,我写完代码发现,我的每个月1号都是星期一!这个问题困扰了我好几天,各种方法都试,最后居然成功了!兴奋了好几天,虽然到现在我也没再看看到底是什么原因就突然弄好了。反正是能用了!
最关键的代码在下面这个函数里:

function Show_Calendar()
 {
        echo "<table width='181' border='0'><tr>".$this->title_link()."</tr><tr>";
        $weekarray=array("日","一","二","三","四","五","六");
        
        for($k=0;$k<=6;$k++)
        {
         echo "<td>".$weekarray[$k]."</td>";
        }
        echo "</tr>";
        
        if($this->oneday_week()==5 && $this->endday()==31) $p=5;
        else if($this->oneday_week()==6 && $this->endday()>=30) $p=5;
        else $p=4;
        
        for($i=0;$i<=$p;$i++)
        {
         echo "<tr>";
             for($j=1;$j<=7;$j++)
             {
                    $math=( $j - $this->oneday_week() ) + 7 * $i;
    
                   echo "<td>";
    
                  if($math <= $this->endday() and $math>=1)
                    {      
                      $query_date=$this->year.'-'.$this->month.'-'.$math;
                      $query=sprintf("select * from kep_ where kep_date='%s'",$query_date);
                     $result=mysql_query($query);
                     $op=0;
                        while ($row=mysql_fetch_row($result)){
                        $op++;
                        }
                  mysql_free_result($result);
                     if ($op&&$query_date!=date('Y-n-d')) echo '<a href="kep.php?date='.$query_date.'" style="color:#0066FF">'.$math.'</a>';
                     else if ($op&&$query_date==date('Y-n-d')) echo '<strong><a href="kep.php?date='.$query_date.'" style="color:#0066FF">'.$math.'</a></strong>';
                     else {
                         if ($query_date==date('Y-n-d')) echo '<strong>'.$math.'</strong>';
                         else echo $math;
                     }
                   }
    
                 echo "&nbsp;</td>";
             }    
         echo "</tr>";     
        }
  echo "</table>";
          
 }

就像一个小孩学习骑自行车,有一天他真的摇摇晃晃骑出了好长一段距离。那种感觉,也许就是我当时完成这段代码的感受吧

小可同学 回复

要的就是这样的帖子!!!!很厉害呢

小可同学 回复

奇怪打赏按钮怎么不见了

评论
0

海阔天空yy 已获得云栖定制电脑包 复制链接去分享

上学的时候,很羡慕那些能做出游戏的,于是就想自己实现一个类似 打乒乓球的游戏,
那时候是用VB,就是用计时器控制控件的移动,主要是改变控件x,y的坐标,到达窗口边缘还会按着反弹规则反弹,当时在想估计会有多复杂,没想到后来实现完,经过几次代码优化,核心代码就几行就行了,所以很有成就感。
后来上学做的那个源代码找不到了,我有时间自己用js实现了一个,以此来怀念那段时光。
‘‘

    this.move=function(){
        if ( this.top+this.step_x<0 || (this.top +this.step_x+ this.height)>document.body.clientHeight) {
            this.step_x*=-1;
        }
        if ( this.left+ this.step_y <0 || (this.left+ this.step_y + this.width)>document.body.clientWidth) {
            this.step_y*=-1;
        }
        this.top += this.step_x;
        this.left += this.step_y;

        if (this.top<0){
            this.top=0;
            this.step_x=Math.abs(this.step_x);
        }
        if (this.left<0){
            this.left=0;
            this.step_y=Math.abs(this.step_y);
        }            
        if (this.top+ this.height>document.body.clientHeight){
            this.top=document.body.clientHeight-this.height;
            this.step_x=Math.abs(this.step_x)*-1;
        }
        if (this.left+ this.width>document.body.clientWidth){
            this.left=document.body.clientWidth-this.width;
            this.step_y=Math.abs(this.step_y)*-1;
        }
        document.all(this.id).style.top=this.top+"px";
        document.all(this.id).style.left=this.left+"px";

’’
运行图
image
image

小可同学 回复

运行图还在吗?留个纪念在这里吧

海阔天空yy 回复

已加上图,运行效果就是,满屏幕的小球做撞击运动,可以当屏保
用方形是因为方形是div实现的,这样能多运行一些小球

小可同学 回复

不错不错!!很棒呀

评论
0

浮生递归 已获得手机话费 复制链接去分享

先来说下你这个笑话……好冷。是因为有冷空气吗?

平时因为都是自己凭空写,所以也无法知道自己的代码是好是坏的。修改别人的代码,只有一次。就是一套滑动门的特效。我接手项目时,前员工已经写好了滑动门的JS特效代码。我一看,这么简单的效果,要几十行JS这么多?看我一句话搞定:
divId1上onMouseOver="divId1.style.display='block';divId2.style.display='none';'"
divId2上onMouseOver="divid2.style.display='block';divid1.style.display='none';'"

搞定,收工!

小可同学 回复

厉害了

评论
1

微wx笑 已获得手机话费 复制链接去分享

曾经写过这样一段代码:

function showPropertyAndObject(objText, n, Tab, cdn){
    var ss = showPropertyAndObject_(objText, n, Tab, cdn);
    parent.displayWindow.document.write(ss);
    document.form2.displayArea.value = ss.replace(/<br>/gi, "\r\n");
    //alert(ss);
}

function showPropertyAndObject_(objText, n, Tab, cdn){
    n += 1;
    var totalInfo = "";
    var sWord = document.form1.tb_search.value;
    for (var w in eval(objText)){
        try{
            if (sWord.length > 0){
                if (w.toString().indexOf(sWord) > -1){
                    totalInfo += (Tab + objText + "." + w + " = " + eval(objText + "."+w) + "<br>");
                }
            }else{
                totalInfo += (Tab + objText + "." + w + " = " + eval(objText + "."+w) + "<br>");
            }
            if (eval(objText + "."+w) && n < cdn) totalInfo += showPropertyAndObject_(objText + "." + w, n, "│&nbsp;&nbsp;&nbsp;" + Tab, cdn);
        }catch(e){
            e = "";
        }
    }
    return(totalInfo);
}

功能如下图:
image

0

五叶 复制链接去分享

🤔🤔🤔🤔

小可同学 回复

你在试表情吗,嘿嘿

评论
1

xdaigua 复制链接去分享

还是hello world得心应手

0

1647527771347643 复制链接去分享

hello.yun!

0

心未眠 复制链接去分享

rm -rf /*

0

锋什么 复制链接去分享

用模板把网站盖起来了,但是还是一脸懵,希望能一年内入门,每天相同时间学的越来越快了,现在是第四个月了。

0

水木天狼 复制链接去分享

echo "hello world!";
System.out.println("Hello,World!");
printf("Hello,World!");
printf("Hello,World!--Way 1n");
print("Hello,World!") ;
Console.WriteLine("Hello,World!");
sys.puts("Hello,World!");
print "Hello,World!n"
print "Hello,World!n";
MsgBox("Hello,World!")
println("Hello,World!");

0

lvelvis 复制链接去分享

echo 111111

0

链顶巨人 复制链接去分享

新手冒泡!有电磁吸盘要修的可以联系我!

0

宁晋消盟6 复制链接去分享

不会写代码,谁能教教我

0

禾森 复制链接去分享

cnnc

0

1869505759424919 复制链接去分享

QAQ

0

1843423348871562 复制链接去分享

这么多东西我要怎样记得哦

0

1317561365336281 复制链接去分享

无比骄傲

0

aoteman675 复制链接去分享

for(;;);
println("I LOVE YOU!");

0

1004527688763188 复制链接去分享

emmmm

0

1866202980678071 复制链接去分享

可以

2