阳历转换成阴历PHP实现详解

结合上次做的日历,提前粘贴一下效果图
当前月份
这里写图片描述
下一个月
这里写图片描述

相关概念

阳历,有很强的规律性。每年12个月,1、3、5、7、8、10、12月都为31天;平年2月份28天,润年2月份29天,其余的月30天。
阴历,却没有这些规律可循。平年十二个月,大月三十天,小月二十九天,全年354天或355天(一年中哪个月大,哪个月小,年年不同)。由于每年的天数比太阳年约差十一天,所以在十九年里设置七个闰月,有闰月的年份全年383天或384天。又根据太阳的位置,把一个太阳年分成二十四个节气,以利于农业种植等活动。纪年用天干地支搭配,六十年周而复始。这种历法相传创始于夏代,所以又称为夏历。也叫旧历。 因此,推算阴历就没有一个统一的算法。
公历=阳历 是世界通用的日期也就是我们平常的日期
农历=阴历 是我国古代用来农耕的日期,也就是日历下面的小字所表示的日期
1,阳历–以地球绕太阳一周为一年所定出的历法.
2,阴历–以太阴(月亮)绕地球为一个月,12个月为一年(闰年为13个月)所定出来的历法.(以闰月调节年之四时).

思路解析

总体思路

要想计算给定的时间对于的农历是哪一天,我们需要找一个参考时间,然后以该参考时间计算以后的时间。首先计算当前时间与参考时间相差的天数,然后通过求出农历每年的天数,计算当前时间对应的是哪一年的第几天,最后计算出属于那个月的哪一个日期。

怎样计算生肖

因为共计12个生肖,”鼠”,”牛”,”虎”,”兔”,”龙”,”蛇”,”马”,”羊”,”猴”,”鸡”,”狗”,”猪”,那么每12年一个轮回。当前2016年是猴年,如果从0开始计数,猴排在第8个,且2016 % 12= 0===》(2016 % 12 +8) %12 ==8
于是可以得出公式(y代表阳历年份)
(y % 12 +8) %12
以上公式可以简化
(y % 12 -4) %12
再次简化
(y -4) %12

怎样计算天干地支

中国古代的一种纪年法。即以甲、乙、丙、丁、戊、己、庚、辛、壬、癸为十干,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥为十二支,把干、支顺序配合。如甲子、乙丑…甲戌等,经过六十年又回到甲子。周而复始,循环不已。
且查日历可以得知1900 年是===>庚子年 丁丑月 甲辰日
假设天干地支序号都从0开始,庚排在6号位,子排在0号位
针对年而言
(1900 -4) % 10 =6 ===>庚
(1900-4) % 12 =4 ===>子
于是总结公式如下(农历年y)
(y-4) % 10 ==>天干对应的位置编号
(y-4) % 12 ==>地支对应的位置编号
同理,可以求出对应的月和,只是针对月和日,需要考虑的是闰月问题,不再细说。

具体实现

所有代码如下:

<?php
/**
*author:dequan
*date:2016-06-20
*原文地址:http://blog.csdn.net/hsd2012/article/details/51701640
*/
class Calendar{private $animals=array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");private $curData=null;//当前阳历时间private $ylYeal=0;private $ylMonth=0;private $yldate=0;private $ylDays=0; //当前日期是农历年的第多少天private $leap=0;//代表润哪一个月private $leapDays=0;//代表闰月的天数private $difmonth=0;//当前时间距离参考时间相差多少月private $difDay=0;//当前时间距离参考时间相差多少天private $tianGan=array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");private $diZhi=array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");private $dataInfo=array(0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,//1900-1909
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,//1910-1919
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,//1920-1929
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,//1930-1939
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,//1940-1949
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0,//1950-1959
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,//1960-1969
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6,//1970-1979
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,//1980-1989
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,//1990-1999
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,//2000-2009
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,//2010-2019
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,//2020-2029
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,//2030-2039
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,//2040-2049
/**Add By JJonline@JJonline.Cn**/
0x14b63,0x09370,0x049f8,0x04970,0x064b0,0x168a6,0x0ea50, 0x06b20,0x1a6c4,0x0aae0,//2050-2059
0x0a2e0,0x0d2e3,0x0c960,0x0d557,0x0d4a0,0x0da50,0x05d55,0x056a0,0x0a6d0,0x055d4,//2060-2069
0x052d0,0x0a9b8,0x0a950,0x0b4a0,0x0b6a6,0x0ad50,0x055a0,0x0aba4,0x0a5b0,0x052b0,//2070-2079
0x0b273,0x06930,0x07337,0x06aa0,0x0ad50,0x14b55,0x04b60,0x0a570,0x054e4,0x0d160,//2080-2089
0x0e968,0x0d520,0x0daa0,0x16aa6,0x056d0,0x04ae0,0x0a9d4,0x0a2d0,0x0d150,0x0f252,//2090-2099
0x0d520);public function __construct($curData=null){if(!empty($curData)){$this->curData=$curData;}else{$this->curData=date('Y-n-j');}$this->init();}public function init(){$basedate='1900-1-31';//参照日期$timezone='PRC';$datetime= new DateTime($basedate, new DateTimeZone($timezone)); $curTime=new DateTime($this->curData, new DateTimeZone($timezone));$offset   = ($curTime->format('U') - $datetime->format('U'))/86400; //相差的天数$offset=ceil($offset);$this->difDay=$offset;$offset+=1;//只能使用ceil,不能使用intval或者是floor,因为1900-1-31为正月初一,故需要加1for($i=1900; $i<2050 && $offset>0; $i++){$temp = $this->getYearDays($i); //计算i年有多少天$offset -= $temp ;$this->difmonth+=12;//判断该年否存在闰月if($this->leapMonth($i)>0){$this->difmonth+=1;} }if($offset<0){$offset += $temp;$i--;$this->difmonth-=12; }if($this->leapMonth($i)>0){$this->difmonth-=1;} $this->ylDays=$offset;//此时$offset代表是农历该年的第多少天$this->ylYeal=$i;//农历哪一年//计算月份,依次减去1~12月份的天数,直到offset小于下个月的天数$curMonthDays=$this->monthDays($this->ylYeal,1);//判断是否该年是否存在闰月以及闰月的天数$this->leap=$this->leapMonth($this->ylYeal);if($this->leap !=0){$this->leapDays=$this->leapDays($this->ylYeal);}for($i=1;$i<13 && $curMonthDays<$offset;$curMonthDays=$this->monthDays($this->ylYeal,++$i)){     if($this->leap == $i){ //闰月if($offset>$this->leapDays){--$i;$offset-=$this->leapDays;$this->difmonth+=1;}else{break;}}else{$offset-=$curMonthDays;$this->difmonth+=1;}}$this->ylMonth=$i;$this->yldate=$offset;}/***计算农历y年有多少天**/public function getYearDays($y){ $sum = 348;//12*29=348,不考虑小月的情况下for($i=0x8000; $i>=0x10; $i>>=1){ $sum += ($this->dataInfo[$y-1900] & $i)? 1: 0;} return($sum+$this->leapDays($y));}/***获取某一年闰月的天数**/public function leapDays($y){if($this->leapMonth($y)){return(($this->dataInfo[$y-1900] & 0x10000)? 30: 29);} else {return(0);}           }/***计算哪一月为闰月*/public  function leapMonth($y){ return ($this->dataInfo[$y-1900] & 0xf);}/***计算农历y年m月有多少天*/public function monthDays($y,$m){return (($this->dataInfo[$y-1900] & (0x10000>>$m))? 30: 29 );}public function getLyTime(){$tmp=array('初','一','二','三','四','五','六','七','八','九','十','廿');$dateStr='';if($this->ylMonth>10){     $m2=intval($this->ylMonth -10); //十位$dateStr='十'.$tmp[$m2].'月';}elseif($this->ylMonth==1){$dateStr='正月';}else{$dateStr=$tmp[$this->ylMonth].'月';}if($this->yldate <11){$dateStr.='初'.$tmp[$this->yldate];}else{$m1=intval($this->yldate / 10);if( $m1 !=3){$dateStr.=($m1==1)?'十':'廿';$m2=$this->yldate % 10;if($m2==0){$dateStr.='十';}else{$dateStr.=$tmp[$m2];}}else{$dateStr.='三十';}}return $dateStr;}/***获取该年对于的天干地支年**/public function getYGanZhi(){$gan=$this->tianGan[($this->ylYeal-4) % 10];$zhi=$this->diZhi[($this->ylYeal-4) % 12];return $gan.$zhi.'年';}/***获取该年对于的天干地支月**/public function getMGanZhi(){       $gan=$this->tianGan[($this->difmonth+3) % 10];$zhi=$this->diZhi[($this->difmonth+1) % 12];return $gan.$zhi.'月';}/***获取该年对于的天干地支日**/public function getDGanZhi(){       $gan=$this->tianGan[$this->difDay % 10];$zhi=$this->diZhi[($this->difDay+4) % 12];return $gan.$zhi.'日';}
}
$c=new Calendar();
$time=$c->getLyTime();
trace(date('Y-n-j').'对应的农历时间:'.$time);$c=new Calendar('2014-10-1');
$time=$c->getLyTime();
trace(date('Y-n-j').'对应的农历时间:'.$time);function trace($info=''){echo '<pre>';print_r($info);echo '</pre>';
}

效果图如下
这里写图片描述
对比百度中日历
这里写图片描述
测试okey。
********暂时没有添加节假日以及星座等,后期会考虑添加更***

细节相关说明

农历十六进制数据解析

1900年的数据是: 0x04bd8
二进制:0000 0100 1011 1101 1000
(如果不想自己推算,在JS里面可以通过console.log(0x04bd8.toString(2));来转换)
对应这些二进制描述如下:
前4位,在这一年是润年时才有意义,它代表这年润月的大小月,1润大月30天,0润小月29天。
中间12位,每位代表一个月,为1则为大月30天,为0则为小月29天
最后4位,即8,代表这一年的润月月份,为0则不润。首4位要与末4位搭配使用。

二进制解析
0000闰月为小月
0100 1011 11011~12个月,每个月包含的天数
1000代表哪个月为闰月,为0的时候,代表没有闰月

故由以上信息可知1900年闰8月,且闰月为小月,从1月到12月的天数依次为:29、30 、29、29、30、29、 30、30、29(闰月)、30、30、29、30。
通过查询百度日历,也可以验证上面我推算
这里写图片描述

这里写图片描述
1900~2100年

0x04bd8,x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,//1900-1909
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,//1910-1919
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,//1920-1929
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,//1930-1939
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,//1940-1949
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0,//1950-1959
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,//1960-1969
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6,//1970-1979
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,//1980-1989
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,//1990-1999
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,//2000-2009
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,//2010-2019
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,//2020-2029
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,//2030-2039
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,//2040-2049
0x14b63,0x09370,0x049f8,0x04970,0x064b0,0x168a6,0x0ea50, 0x06b20,0x1a6c4,0x0aae0,//2050-2059
0x0a2e0,0x0d2e3,0x0c960,0x0d557,0x0d4a0,0x0da50,0x05d55,0x056a0,0x0a6d0,0x055d4,//2060-2069
0x052d0,0x0a9b8,0x0a950,0x0b4a0,0x0b6a6,0x0ad50,0x055a0,0x0aba4,0x0a5b0,0x052b0,//2070-2079
0x0b273,0x06930,0x07337,0x06aa0,0x0ad50,0x14b55,0x04b60,0x0a570,0x054e4,0x0d160,//2080-2089
0x0e968,0x0d520,0x0daa0,0x16aa6,0x056d0,0x04ae0,0x0a9d4,0x0a2d0,0x0d150,0x0f252,//2090-2099
0x0d520////2100

为什么选择阳历1900.1.31作为参考点

因为能找到最早的农历十六进制数据是1900年。且通过查询,可以得知,阳历1900.1.31,正好是农历1900.1.1。这样便于推算
这里写图片描述

怎样计算农历y年有多少天

在上面,我们可以由农历十六进制数据推算,每个月有多少天,以及是否闰月,那么久很容易推算出某一年有多少天,但是,我们是将其转为二进制来计算的。如1990 <====>0x04bd8,转换成二进制为
0000 0100 1011 1100 0100,怎样才能分别得到其第5位到第16位上的数字呢?这时候,我们可以通过与运算来实现。让其分别如以下二进制做与运算
0000 1000 0000 0000 0000 ===>0x08000 ==>如果为0,代表第5位上的数字为0,否则为1
0000 0100 0000 0000 0000 ===>0x04000 ==>如果为0,代表第6位上的数字为0,否则为1
0000 0010 0000 0000 0000 ===>0x02000 ==>如果为0,代表第7位上的数字为0,否则为1
********************中间省略********************************
0000 0000 0000 0010 0000 ===>0x00020 ==>如果为0,代表第15位上的数字为0,否则为1
0000 0000 0000 0001 0000 ===>0x00010 ==>如果为0,代表第16位上的数字为0,否则为1

0x08000 ====>0x00010
于是可以使用循环语句如下

for($i=0x8000; $i>=0x10; $i>>=1){$curNum=0x04bd8 && $i ? 1 :0;
}

这样计算农历y年有多少天程序就比较容易实现

    /***计算农历y年有多少天**/public function getYearDays($y){ $sum = 348;//12*29=348,不考虑小月的情况下for($i=0x8000; $i>=0x10; $i>>=1){ $sum += ($this->dataInfo[$y-1900] & $i)? 1: 0;} return($sum+$this->leapDays($y));}/***获取某一年闰月的天数**/public function leapDays($y){if($this->leapMonth($y)){return(($this->dataInfo[$y-1900] & 0x10000)? 30: 29);} else {return(0);}           }/***计算哪一月为闰月*/public  function leapMonth($y){ return ($this->dataInfo[$y-1900] & 0xf);}

PHP 32位怎样解决时间戳范围的限制问题

当我们在求一个时间的时间戳的时候,如果时间太靠前或者是太靠后,PHP是不能给出正确的解析,如下

var_dump(strtotime('1900-1-31'));  //返回false
var_dump(strtotime('2050-3-01'));//返回false

查看手册可以看到
这里写图片描述
对于PHP 64位版本来说,就不存在时间戳范围的限制了
为了解决时间范围的限制的问题,PHP5.2及以上版本提供了DateTime类。

$c1=new DateTime('1900-1-31', new DateTimeZone('PRC'));
$c2=new DateTime('2111-01-01',new DateTimeZone('PRC'));var_dump($c1->format('U')); //-2206425600
var_dump($c2->format('U'));//4449484800

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57029.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中万年历公历农历转换,公历农历转换,教你切换阳历和阴历生日

公历&#xff0c;又叫阳历&#xff0c;农历&#xff0c;又叫阴历&#xff0c;阳历和阴历所依据的参照物不同&#xff0c;计算方法也不一样&#xff0c;应该如何换算呢&#xff1f;下面就来看看本文关于公历农历转换&#xff0c;教你切换阳历和阴历生日的分析吧。 一、快速切换方…

阳历转阴历,阳历转中国农历

文章目录 阳历转阴历&#xff0c;阳历转中国农历 阳历转阴历&#xff0c;阳历转中国农历 阳历转阴历一直都是很繁琐的过程&#xff0c;所以我制作了一个开发包&#xff0c;来方便我们转换阳历到中国农历。 让我们下载 moon-time&#xff1a; moon-time 是一个将阳历转换为阴…

软件设计师---结构化开发

笔记有错误欢迎直接在评论区进行纠正&#xff01;我将不再维护软件设计师笔记&#xff01; 结构化开发上午题大概4分 模块化 耦合 真题 真题1 真题2 这里不要一看到数据结构就觉得是标记耦合&#xff0c;标记耦合是两个模块传递的是数据结构&#xff0c;而这里没有传递&…

软件工程之结构化方法

结构化方法 结构化分析结构化分析模型数据流图 结构化分析过程需求规格说明书需求验证 结构化设计总体设计体系结构设计接口设计数据设计 详细设计详细设计工具 软件设计规约 结构化分析 结构化方法是一种特定的软件开发方法学。 结构化方法就软件需求分析而言&#xff0c;即…

实验一 结构化分析(软件工程)

&#xff08;一&#xff09;实验目的要求 1. 了解Visio/在线绘图工具的功能特色 2. 了解Visio/在线绘图工具的工具环境 3. 运用Visio/在线绘图工具绘制数据流图 4. 能够运用Visio/在线绘图工具绘制系统E-R图 &#xff08;二&#xff09;实验材料和仪器设备 1. PC机 2. V…

【软件工程】之结构化分析

结构化分析 6.1引言6.2结构化分析建模6.3面向数据流的建模方法6.4面向数据的建模方法6.5面向状态的建模方法6.6思考题1、结构化分析的特点2、数据流图的建模元素3、数据字典 结构化需求分析的建模方法&#xff1a; ①面向数据流的建模方法&#xff1a; 数据流图(DFD)-功能域 ②…

系分 - 结构化方法【概念】

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 系分 - &#xff08;概念&#xff09;结构化方法结构化分析&#xff08;SA&#xff0c;Structured Analysis&#xff09;结构化设计&#xff08;SD&#xff0c;Structured Design&#xff09;结构化程序设…

软件工程——结构化分析

目录 一、结构化分析方法 二、功能建模 三、数据建模 四、行为建模 五、数据字典 六、加工规格说明 一、结构化分析方法 传统的分析建模方法称为结构化分析&#xff08;structured analysis&#xff0c;SA&#xff09;方法。 最有代表性的是一种面向数据流进行需求分析的方…

GPT-4“王炸”发布!1秒生成网站!

果然&#xff0c;能打败昨天的OpenAI的&#xff0c;只有今天的OpenAI。 刚刚&#xff0c;OpenAI震撼发布了大型多模态模型GPT-4&#xff0c;支持图像和文本的输入&#xff0c;并生成文本结果。 OpenAI老板Sam Altman直接开门见山地介绍说&#xff1a; 这是我们迄今为止功能最强…

StackLLaMA: 用 RLHF 训练 LLaMA 的手把手教程

来自&#xff1a;Hugging Face 进NLP群—>加入NLP交流群 如 ChatGPT&#xff0c;GPT-4&#xff0c;Claude 这样的语言模型之所以强大&#xff0c;是因为它们采用了 基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF) 来使之更符合我们的使用场景。…

ChatGPT 已能操控机器人,工程师连代码都不用写,网友:微软在搞天网?

Alex 发自 凹非寺 本文源自&#xff1a;量子位 | 公众号 QbitAI 当我还在跟ChatGPT吹牛尬聊时&#xff0c;有人已经在拿它操控机器人了。 不是别人&#xff0c;正是OpenAI的金主爸爸、不久前刚拿ChatGPT“重新发明搜索引擎”的微软。 到目前为止&#xff0c;开发者调教机器人…

自从使用了Cursor工作效率飞起

什么是Cursor 官网&#xff1a;https://www.cursor.so/ 看官网接受大家应该就知道是什么东西了&#xff0c;他是一个开源的AI编程编辑器。开源地址https://github.com/getcursor/cursor 目前在国内是可以不需要其他东西&#xff0c;可以之间访问的。而且目前免费使用。支持多…

大模型惨遭人类大范围攻击!国内各领域专家组团投毒,GPT-4 也 Hold 不住

这是「进击的Coder」的第 852 篇技术分享 作者&#xff1a;关注前沿科技 来源&#xff1a;量子位 “ 阅读本文大概需要 9 分钟。 ” 包括 GPT-4 在内等多个大模型惨遭人类攻击&#xff01;还是大范围、多边形那种。 而且这个军团被爆个个来头不小。 包括社会学家李银河、心理学…

宵夜杂谈 | Uni3D是自动驾驶脱不去的长衫?

作者 | matrix明仔 编辑 | 汽车人 原文链接&#xff1a;https://zhuanlan.zhihu.com/p/616531799 点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 ADAS巨卷干货&#xff0c;即可获取 点击进入→自动驾驶之心【全栈算法】技术交流群 1说在前面的话 我一个朋友昨天喝了两大…

CUDA实战 | CUDA卷积算子手写详细实现流程!

作者 | Pegessi 编辑 | 极市平台 原文链接&#xff1a;https://zhuanlan.zhihu.com/p/613538649 点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 ADAS巨卷干货&#xff0c;即可获取 点击进入→自动驾驶之心【模型部署】技术交流群 后台回复【CUDA】获取CUDA实战书籍&…

万字长文 | 详解CUDA卷积算子手写实现

作者 | Pegessi 编辑 | 极市平台 原文链接&#xff1a;https://zhuanlan.zhihu.com/p/613538649 点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 ADAS巨卷干货&#xff0c;即可获取 点击进入→自动驾驶之心【模型部署】技术交流群 导读 本篇文章主要介绍如何利用CUDA实现…

第一次玩剧本杀,基本说明与模型抽取

本文分两部分&#xff0c;第一部分是基本说明&#xff0c;第二部分是模型抽取。 一、基本说明 根据不同剧本&#xff0c;参与人数7/-2人&#xff0c;跟Scrum的黄金人数一致。游戏时长3~5小时&#xff0c;跟两周迭代的计划会时长一致。 每个角色都有自己的剧本&#xff0c;剧本中…

巴比特 | 元宇宙每日必读:虚拟数字人是否享有著作权或邻接权?杭州互联网法院判决首例涉“虚拟数字人”侵权案...

摘要&#xff1a;据杭州互联网法院报道&#xff0c;近日&#xff0c;杭州互联网法院就首例涉“虚拟数字人”侵权案作出了一审判决。本案判决结合人工智能技术应用及虚拟数字人发展现状&#xff0c;从权利主体、客体、权利归属等多层面分析虚拟数字人在现有《著作权法》框架下不…

京东撸货前期准备流程急设备要求

1硬件设备:电脑一台货苹果手机一部,手机推荐苹果6S以上,系统版本14以下的好操作,如果现有的设备是14的也可以。 电脑的话推荐配置E5系列,可以多开模拟器窗口。64位系统你开启VT功能,其他的无所谓,如果配置不够差一点也能行, 2软件方面,推荐用佐罗,爱丽丝或者爱新机…

生活需要套路

文章来自公众号&#xff1a;胖琪的升级之路 一般说到套路&#xff0c;总感觉是一个贬义词&#xff0c;但今天所说的套路是为了给自己减负&#xff0c;或者是帮助提高的一种想法。 生活为什么需要套路 学习&#xff0c;生活&#xff0c;办事等等&#xff0c;很多时候在这些事情里…