**
**公历转农历C/C++的实现
**
本实现的算法,主要来自网络和加入自己的需要完善而来,有同样需要的人可以参考一下:
联系:domics.cn
用法:
备注:此文件是visual studio 2019中测试通过的(Release X86 Unicode字符集)
(1)在你的工程添加以下头文件代码和实现文件代码。
(2)在你需要的代码页中包含这个头文件即。
主要函数说明 :
(1)cnDate GetLunar(int yyyy, int mm, int dd);//公历转农历
把传入的公历日期,转换成农历。
(2) Date GetSolar(cnDate lunar);//农历转公历
将公历形书写的农历日期换成公历日期。
(3) Date GetDays24(int year, int index);//获取24节气的公历日期
year:你需要获取节气的年份,index:包含头文件后,你需要写上节气的首字母即可。如
GetDays24(2020,qm),即是返回2020年,清明(qm)公历日期,其它年份的任何节气类推。
(4) Date DaysAddOrSubtrack(Date date1, int days, bool bAdd = false);//date1 + days Or date1-days
日期计算:格式date1+X天或date1-X天,返回加或减后的日期。
如:(一定要包含以上写的头文件)
Date date;
date.year=2020;
date.math=5;
date.day=6;
DaysAddOrSubtrack(date,20,TRUE),即返回2020年5月6日20天后的日期。
DaysAddOrSubtrack(date,20,FALSE),即返回2020年5月6日20天前的日期。
bAdd,真为日期加(日期后),假为日期减(日期前)。
(5) IsLeapYear(int year);//判断给定的年份是不是闰年
返回值Date,cnDate结构说明:
typedef struct structDate
{
//农历部分结构
CString cnYear=TEXT("");//中文的年份(天干地支)
CString cnMonth = TEXT("");//中文月份(腊月至正月)
CString cnDay = TEXT("");//初一至三十
bool leap = false;//是否闰月
//公历部分结构
int year=0;//年
int month=0;//月
int day=0; //日
}Date,cnDate;//公历、农历同一结构中
上面的函数,返回值是Date,cnDate格式的,说明这个结构体中,即可以有农历的形式,也有农历写成公历的形式的日期。
代码如下:
头文件部分:
#pragma once
/*头文件:cndays.h;对应的实现文件:cndays.cpp
本文件的实现,参考自多地个地方。我也记不清,如果你觉得
对你的著作权有损,请联系我需要我删除的请联系我:wx:domics
qq:1176708259。我收到信息后立即删除本博。谢谢!
如果没意见的话,就共大家分享吧!感激!*/
#include <cstring>
#include <tchar.h>
//来自网络的即说是天文观测数据。大意:
//0~4 共5bit 春节日份
//5~6 共2bit 春节月份
//7~19 共13bit 13个月的大小月情况(如果无闰月,最后位无效),大月为1,小月为0
//20~23 共4bit 记录闰月的月份,如果没有闰月为0
static const unsigned int BaseData[199] = {
0x04AE53,0x0A5748,0x5526BD,0x0D2650,0x0D9544,
0x46AAB9,0x056A4D,0x09AD42,0x24AEB6,0x04AE4A, //1901年-1910年
0x6A4DBE,0x0A4D52,0x0D2546,0x5D52BA,0x0B544E,
0x0D6A43,0x296D37,0x095B4B,0x749BC1,0x049754, //1911年-1920年
0x0A4B48,0x5B25BC,0x06A550,0x06D445,0x4ADAB8,
0x02B64D,0x095742,0x2497B7,0x04974A,0x664B3E, //1921年-1930年
0x0D4A51,0x0EA546,0x56D4BA,0x05AD4E,0x02B644,
0x393738,0x092E4B,0x7C96BF,0x0C9553,0x0D4A48, //1931年-1940年
0x6DA53B,0x0B554F,0x056A45,0x4AADB9,0x025D4D,
0x092D42,0x2C95B6,0x0A954A,0x7B4ABD,0x06CA51, //1941年-1950年
0x0B5546,0x555ABB,0x04DA4E,0x0A5B43,0x352BB8,
0x052B4C,0x8A953F,0x0E9552,0x06AA48,0x7AD53C, //1951年-1960年
0x0AB54F,0x04B645,0x4A5739,0x0A574D,0x052642,
0x3E9335,0x0D9549,0x75AABE,0x056A51,0x096D46, //1961年-1970年
0x54AEBB,0x04AD4F,0x0A4D43,0x4D26B7,0x0D254B,
0x8D52BF,0x0B5452,0x0B6A47,0x696D3C,0x095B50, //1971年-1980年
0x049B45,0x4A4BB9,0x0A4B4D,0xAB25C2,0x06A554,
0x06D449,0x6ADA3D,0x0AB651,0x093746,0x5497BB, //1981年-1990年
0x04974F,0x064B44,0x36A537,0x0EA54A,0x86B2BF,
0x05AC53,0x0AB647,0x5936BC,0x092E50,0x0C9645, //1991年-2000年
0x4D4AB8,0x0D4A4C,0x0DA541,0x25AAB6,0x056A49,
0x7AADBD,0x025D52,0x092D47,0x5C95BA,0x0A954E, //2001年-2010年
0x0B4A43,0x4B5537,0x0AD54A,0x955ABF,0x04BA53,
0x0A5B48,0x652BBC,0x052B50,0x0A9345,0x474AB9, //2011年-2020年
0x06AA4C,0x0AD541,0x24DAB6,0x04B64A,0x69573D,
0x0A4E51,0x0D2646,0x5E933A,0x0D534D,0x05AA43, //2021年-2030年
0x36B537,0x096D4B,0xB4AEBF,0x04AD53,0x0A4D48,
0x6D25BC,0x0D254F,0x0D5244,0x5DAA38,0x0B5A4C, //2031年-2040年
0x056D41,0x24ADB6,0x049B4A,0x7A4BBE,0x0A4B51,
0x0AA546,0x5B52BA,0x06D24E,0x0ADA42,0x355B37, //2041年-2050年
0x09374B,0x8497C1,0x049753,0x064B48,0x66A53C,
0x0EA54F,0x06B244,0x4AB638,0x0AAE4C,0x092E42, //2051年-2060年
0x3C9735,0x0C9649,0x7D4ABD,0x0D4A51,0x0DA545,
0x55AABA,0x056A4E,0x0A6D43,0x452EB7,0x052D4B, //2061年-2070年
0x8A95BF,0x0A9553,0x0B4A47,0x6B553B,0x0AD54F,
0x055A45,0x4A5D38,0x0A5B4C,0x052B42,0x3A93B6, //2071年-2080年
0x069349,0x7729BD,0x06AA51,0x0AD546,0x54DABA,
0x04B64E,0x0A5743,0x452738,0x0D264A,0x8E933E, //2081年-2090年
0x0D5252,0x0DAA47,0x66B53B,0x056D4F,0x04AE45,
0x4A4EB9,0x0A4D4C,0x0D1541,0x2D92B5 //2091年-2099年
};
typedef struct structDate
{
//农历部分结构
CString cnYear=TEXT("");//中文的年份(天干地支+生肖年)
CString cnMonth = TEXT("");//中文月份(腊月至正月)
CString cnDay = TEXT("");//初一至三十
BOOL leap = FALSE;//是否闰月
//公历部分结构:返回值其实是农历日期的公历书写形式。
int year=0;//年
int month=0;//月
int day=0; //日
}Date,cnDate;//公历、农历同一结构中
/*xh:小寒的首字母,其它的类推:用首字母方便记。
0小寒1大寒2立春3雨水4惊蛰5春分6清明7谷雨
8立夏9小满10芒种11夏至12小暑13大暑14立秋15处暑
16白露17秋分18寒露19霜降20立冬21小雪22大雪23冬至*/
const int xh= 0; const int dh = 1;const int lc = 2;
const int ys = 3; const int jz = 4; const int cf = 5;
const int qm = 6; const int gy = 7; const int lx = 8;
const int xm = 9; const int mz = 10; const int xz = 11;
const int xs= 12; const int ds = 13; const int lq = 14;
const int cs = 15; const int bl = 16; const int qf = 17;
const int hl = 18; const int sj = 19; const int ld = 20;
const int xx = 21; const int dx = 22; const int dz = 23;
//类
class CCnDays
{
public:
cnDate GetLunar(int yyyy, int mm, int dd);//公历转农历
Date GetSolar(cnDate lunar);//农历转公历
Date GetDays24(int year, int index);//获取24节气的公历日期
Date DaysAddOrSubtrack(Date date1, int days, bool bAdd = false);//date1 + days Or date1-days
bool IsLeapYear(int year);//判断给定的年份是不是闰年
CString cn24Days[24] =
{
TEXT("小寒"),TEXT("大寒"),TEXT("立春"),TEXT("雨水"),
TEXT("惊蛰"),TEXT("春分"),TEXT("清明"),TEXT("谷雨"),
TEXT("立夏"),TEXT("小满"),TEXT("芒种"),TEXT("夏至"),
TEXT("小暑"),TEXT("大暑"),TEXT("立秋"),TEXT("处暑"),
TEXT("白露"),TEXT("秋分"),TEXT("寒露"),TEXT("霜降"),
TEXT("立冬"),TEXT("小雪"),TEXT("大雪"),TEXT("冬至")
};
CString cn24DaysOnMonth[12] =
{
TEXT("大寒"),TEXT("雨水"),TEXT("春分"),TEXT("谷雨"),
TEXT("小满"),TEXT("夏至"),TEXT("大暑"),TEXT("处暑"),
TEXT("秋分"),TEXT("霜降"),TEXT("小雪"),TEXT("冬至")
};
CString cnMonth[12] =
{
TEXT("正月"),TEXT("二月"),TEXT("三月"),TEXT("四月"),
TEXT("五月"),TEXT("六月"),TEXT("七月"),TEXT("八月"),
TEXT("九月"),TEXT("十月"),TEXT("冬月"),TEXT("腊月")
};
CString cnDays[30] =
{
TEXT("初一"),TEXT("初二"),TEXT("初三"),TEXT("初四"),
TEXT("初五"),TEXT("初六"),TEXT("初七"),TEXT("初八"),
TEXT("初九"),TEXT("初十"),TEXT("十一"),TEXT("十二"),
TEXT("十三"),TEXT("十四"),TEXT("十五"),TEXT("十六"),
TEXT("十七"),TEXT("十八"),TEXT("十九"),TEXT("二十"),
TEXT("廿一"),TEXT("廿二"),TEXT("廿三"),TEXT("廿四"),
TEXT("廿五"),TEXT("廿六"),TEXT("廿七"),TEXT("廿八"),
TEXT("廿九"),TEXT("三十")
};
protected:
int monthTotal[13] = { 0,31,59,90,120,151,181,212,243,273,304,334,365 };//公农历转换时用
int DaysOfMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数,内部使用
int GetDaysOfMonth(int year,int month);//获取每月的天数
Date DaysToDate(int ndays);//将GetDays24()函数返回值转换成月日
cnDate GetLunarPart(int yyyy, int mm, int dd);//公历转农历
};
实现文件部分:
#include "pch.h" //注意这个头文件是visual studio 2010工程都有的。版本不同就不同
#include "cndays.h"
#include <ctime>
#include <cassert>
cnDate CCnDays::GetLunar(int yyyy, int mm, int dd)
{
cnDate lunar=GetLunarPart(yyyy,mm,dd);
//再计算农历年的天干地支与生肖年:
CString sx[12] =
{
TEXT("鼠"),TEXT("牛"),TEXT("虎"),TEXT("兔"),TEXT("龙"),TEXT("蛇"),
TEXT("马"),TEXT("羊"),TEXT("猴"),TEXT("鸡"),TEXT("狗"),TEXT("猪")
};
/*甲、乙、丙、丁、戊、己、庚、辛、壬、癸被称为“十天干”,
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥叫作“十二地支”*/
CString tg[10] =
{
TEXT("甲"),TEXT("乙"),TEXT("丙"),TEXT("丁"),TEXT("戊"),
TEXT("己"),TEXT("庚"),TEXT("辛"),TEXT("壬"),TEXT("癸")
};
/*甲、乙、丙、丁、戊、己、庚、辛、壬、癸被称为“十天干”,
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥叫作“十二地支”*/
CString dz[12] =
{
TEXT("子"),TEXT("丑"),TEXT("寅"),TEXT("卯"),TEXT("辰"),TEXT("巳"),
TEXT("午"),TEXT("未"),TEXT("申"),TEXT("酉"),TEXT("戌"),TEXT("亥")
};
lunar.cnYear = tg[(lunar.year - 1864) % 10];//天干
lunar.cnYear += dz[(lunar.year - 1864) % 12];//地支
lunar.cnYear +=TEXT("【")+ sx[(lunar.year - 1900) % 12]+ TEXT("】年");//生肖
//格成农历月
if (lunar.leap)
{
Date ld1, ld2 = lunar;
ld1.year = yyyy; ld1.month = mm; ld1.day = dd;
//农历前一个月的最后一天的公历日期
ld2 = DaysAddOrSubtrack(ld1, ld2.day, false);
//农历前一个月的最后一天的农历日期
ld1 = GetLunarPart(ld2.year, ld2.month, ld2.day);
if (lunar.month == ld1.month)
{
lunar.cnMonth =TEXT("闰")+ cnMonth[lunar.month - 1];
}
else
{
lunar.cnMonth = cnMonth[lunar.month - 1];
}
}
else
{
lunar.cnMonth = cnMonth[lunar.month - 1];
}
//格成农历日
lunar.cnDay = cnDays[lunar.day-1];
return lunar;
}
Date CCnDays::GetSolar(cnDate lunar)
{
**/*来自网络高手部分代码*/**
int year = lunar.year,
month = lunar.month,
day = lunar.day;
int byNow, xMonth, i;
Date solar;
byNow = (BaseData[year - 1901] & 0x001F) - 1;
if (((BaseData[year - 1901] & 0x0060) >> 5) == 2)
byNow += 31;
for (i = 1; i < month; i++) {
if ((BaseData[year - 1901] & (0x80000 >> (i - 1))) == 0) {
byNow += 29;
}
else
byNow += 30;
}
byNow += day;
xMonth = (BaseData[year - 1901] & 0xf00000) >> 20;
if (xMonth != 0) {
if (month > xMonth
|| (month == xMonth && lunar.leap)) {
if ((BaseData[year - 1901] & (0x80000 >> (month - 1))) == 0)
byNow += 29;
else
byNow += 30;
}
}
if (byNow > 366
|| (year % 4 != 0 && byNow == 365)) {
year += 1;
if (year % 4 == 0)
byNow -= 366;
else
byNow -= 365;
}
for (i = 1; i <= 13; i++) {
if (monthTotal[i] >= byNow) {
month = i;
break;
}
}
solar.day = byNow - monthTotal[month - 1];
solar.month = month;
solar.year = year;
return solar;
}
//GetDays24(int year, int index)与DyasOneToDate(int nCnDayOne)
//结合起来计算指定24节气在公历中的日期=======================================
Date CCnDays::GetDays24(int year, int index)
{
/*来自网络经验公式,至2099年有效*/
int y = year-1900;
int ymd = 365.242 * y+ 6.2 + 15.22 * index - 1.9 * sin(0.262 * index);
Date rd = DaysToDate(ymd);
rd.year=year;
return rd;
}/*//GetDays24(int year, int index)与DyasOneToDate(int nCnDayOne)
//结合起来计算指定24节气在公历中的日期
=========================================================================*/
bool CCnDays::IsLeapYear(int year)
{
if (year % 400 == 0)
{
return true;
}
else if(year%100==0)
{
return false;
}
else if(year%4==0)
{
return true;
}
return false;
}
Date CCnDays::DaysToDate(int ndays)
{
int m = 0; int y = 1900;
Date d;
while (ndays > GetDaysOfMonth(y,m))
{
ndays = ndays - GetDaysOfMonth(y,m);
m = (m + 1)%12;
if (m == 0)y += 1;
d.year = y;
d.month = m + 1;
d.day = ndays;
}
return d;
}
cnDate CCnDays::GetLunarPart(int yyyy, int mm, int dd)
{
**/*来自网络高手部分代码*/**
int year = yyyy, month = mm, day = dd;
int bySpring, bySolar, daysPerMonth;
int index, flag;
cnDate plunar;
//bySpring 记录春节离当年元旦的天数。
//bySolar 记录阳历日离当年元旦的天数。
if (((BaseData[year - 1901] & 0x0060) >> 5) == 1)
bySpring = (BaseData[year - 1901] & 0x001F) - 1;
else
bySpring = (BaseData[year - 1901] & 0x001F) - 1 + 31;
bySolar = monthTotal[month - 1] + day - 1;
if ((!(year % 4)) && (month > 2))
bySolar++;
//daysPerMonth记录大小月的天数 29 或30
//index 记录从哪个月开始来计算。
//flag 是用来对闰月的特殊处理。
//判断阳历日在春节前还是春节后
if (bySolar >= bySpring) {//阳历日在春节后(含春节那天)
bySolar -= bySpring;
month = 1;
index = 1;
flag = 0;
if ((BaseData[year - 1901] & (0x80000 >> (index - 1))) == 0)
daysPerMonth = 29;
else
daysPerMonth = 30;
while (bySolar >= daysPerMonth) {
bySolar -= daysPerMonth;
index++;
if (month == ((BaseData[year - 1901] & 0xF00000) >> 20)) {
flag = ~flag;
if (flag == 0)
month++;
}
else
month++;
if ((BaseData[year - 1901] & (0x80000 >> (index - 1))) == 0)
daysPerMonth = 29;
else
daysPerMonth = 30;
}
day = bySolar + 1;
}
else {//阳历日在春节前
bySpring -= bySolar;
year--;
month = 12;
if (((BaseData[year - 1901] & 0xF00000) >> 20) == 0)
index = 12;
else
index = 13;
flag = 0;
if ((BaseData[year - 1901] & (0x80000 >> (index - 1))) == 0)
daysPerMonth = 29;
else
daysPerMonth = 30;
while (bySpring > daysPerMonth) {
bySpring -= daysPerMonth;
index--;
if (flag == 0)
month--;
if (month == ((BaseData[year - 1901] & 0xF00000) >> 20))
flag = ~flag;
if ((BaseData[year - 1901] & (0x80000 >> (index - 1))) == 0)
daysPerMonth = 29;
else
daysPerMonth = 30;
}
day = daysPerMonth - bySpring + 1;
}
plunar.day = day;
plunar.month = month;
plunar.year = year;
if (month == ((BaseData[year - 1901] & 0xF00000) >> 20))
plunar.leap = true;
else
plunar.leap = false;
return plunar;
}
Date CCnDays::DaysAddOrSubtrack(Date date1, int days, bool bAdd)
{
if (bAdd)//真为加,
{
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
days += date1.day;
if (IsLeapYear(date1.year))//闰年
{
/*rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr*/
if (date1.month == 2)
{
if (days > 29)
{
days = days % 29;
date1.month+=(days/29);
if (date1.month > 12)date1.year+=(date1.month/12);
}
}
else if(date1.month==1|| date1.month == 3 || date1.month == 5 || date1.month == 7
|| date1.month == 8 || date1.month == 10 || date1.month == 12 )//大月
{
if (days > 31)
{
days = days % 31;
date1.month+=(days % 31);
if (date1.month > 12)date1.year+= (date1.month/12);
}
}
else if (date1.month == 4 || date1.month == 6 || date1.month == 9|| date1.month == 11 )//小月
{
if (days > 30)
{
days = days % 30;
date1.month+=(days % 30);
if (date1.month > 12)date1.year+=(date1.month/12);
}
}
/*rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr*/
}
else//平年
{
/*pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp*/
if (date1.month == 2)
{
if (days > 28)
{
days = days % 28;
date1.month += (days % 28);
if (date1.month > 12)date1.year += (date1.month / 12);
}
}
else if (date1.month == 1 || date1.month == 3 || date1.month == 5 || date1.month == 7
|| date1.month == 8 || date1.month == 10 || date1.month == 12)//大月
{
if (days > 31)
{
days = days % 31;
date1.month += (days % 31);
if (date1.month > 12)date1.year += (date1.month / 12);
}
}
else if (date1.month == 4 || date1.month == 6 || date1.month == 9 || date1.month == 11)//小月
{
if (days > 30)
{
days = days % 30;
date1.month += (days % 30);
if (date1.month > 12)date1.year += (date1.month / 12);
}
}
/*pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp*/
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
}
else//假为减法
{
/*妈呀日期的减法怎么这么难搞只能都用最笨的办法来了*/
for (int caldays =days; caldays>=1; --caldays)
{
date1.day--; //自减一天。
if (date1.day== 0)
{
date1.month--;
//处理二月份,分平、闰年的情况
if (IsLeapYear(date1.year))//闰年
{
if (date1.month == 2)
{
date1.day = 29;
}
else if (date1.month == 1 || date1.month == 3 || date1.month == 5 || date1.month == 7 || date1.month == 8
|| date1.month == 10 || date1.month == 12)//大月
{
date1.day = 31;
}
else if (date1.month == 4 || date1.month == 6 || date1.month == 9 || date1.month == 11)//小月
{
date1.day = 30;
}
else if (date1.month == 0)
{
date1.month = 12;
date1.day = 31;
date1.year--;
}
}
else//平年
{
if (date1.month == 2)
{
date1.day = 28;
}
else if (date1.month == 1 || date1.month == 3 || date1.month == 5 || date1.month == 7
|| date1.month == 8 || date1.month == 10 || date1.month == 12)//大月
{
date1.day = 31;
}
else if (date1.month == 4 || date1.month == 6 || date1.month == 9 || date1.month == 11)//小月
{
date1.day = 30;
}
else if (date1.month == 0)
{
date1.month = 12;
date1.day = 31;
date1.year--;
}
}
}
} //把日期减到0估计就对了吧????????????????
/*----------------------------------------------------------------------------------------------*/
return date1;//减法的直接返回即可。
}
date1.day = days;
return date1;
}
int CCnDays::GetDaysOfMonth(int year, int month)
{
//返回year年中month月的天数。
if (IsLeapYear(year) && month == 1)
{
return DaysOfMonth[month] + 1;
}
return DaysOfMonth[month];
}
来自:https://blog.csdn.net/syrchina/article/details/8538516
来自:https://wenku.baidu.com/view/9f81b036f424ccbff121dd36a32d7375a517c67b.html
公历农历互转C/C++的实现
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎