当前位置: 首页 > wzjs >正文

电子商务网站规划书自动收录网

电子商务网站规划书,自动收录网,wordpress时间线主题,昆明好的网站制作用字符串构造datetime Typst自带的datetime需要使用字典形式构造。我觉得不太好看,所以编写函数用字符串构造datetime。 实现 // 日期函数 #let day(date_str) {let(y,m,d) date_str.split("-")return datetime(year:int(y),month:int(m),day:int(d)…

用字符串构造datetime

Typst自带的datetime需要使用字典形式构造。我觉得不太好看,所以编写函数用字符串构造datetime

实现

// 日期函数
#let day(date_str) = {let(y,m,d) = date_str.split("-")return datetime(year:int(y),month:int(m),day:int(d),)
}// 时间函数
#let time(time_str) = {let(h,m,s) = time_str.split(":")return datetime(hour:int(h),minute:int(m),second:int(s),)
}// 日期时间函数
#let day_time(date_time_str) = {let(date_str,time_str) = date_time_str.split(" ")let(y,m,d) = date_str.split("-")let(h,mt,s) = time_str.split(":")return datetime(year:int(y),month:int(m),day:int(d),hour:int(h),minute:int(mt),second:int(s),)
}

使用也很简单,调用函数即可。

#day("2025-10-11")  // datetime(year: 2025,month:10,day: 11)
#time("12:09:08")   // datetime(hour:12,minute:9,second:8)
#day_time("2025-10-12 11:08:09")

月历和年历

发现自己很想用Typst搞日历,第三方包cineca的日历不持支中文,于是搜出几年前在Godot3.5编写的日期时间函数库,实现了Typst的版本,并制作了基于表格的月历和年历函数。

// 判断是否是闰年(leap year)
#let is_leap_year(year) = {let bol = falseif calc.rem(year,4) == 0 {bol = trueif calc.rem(year,100) == 0 {  // 年份是100的倍数if calc.rem(year,400) == 0 {  // 必须是400的整数倍bol = true} else {bol = false}}}return bol
}// 返回某年的某月共有多少天	
#let get_month_day_count(year,month) = {let day_count = 0if month == 2 {if is_leap_year(year){ //闰年day_count = 29} else {day_count = 28}		} else if month in (1,3,5,7,8,10,12) { // 大月day_count = 31} else if month in (4,6,9,11){         // 小月day_count = 30}return day_count
}// 返回某年共有多少天	
#let get_year_day_count(year) = {let day_count = 0for i in range(12){day_count += get_month_day_count(year,i+1)}return day_count
}// 获取某年某月第一天星期几(数字)
#let get_first_weekday(year,month) = {let d = str(year) + "-" + str(month) + "-01"return day(d).weekday()
}// 获取某年某月第一天星期几(汉字)
#let get_first_weekday_name(year,month) = {import "@preview/a2c-nums:0.0.1": int-to-cn-numlet w = get_first_weekday(year,month)if w in range(1,7) {return int-to-cn-num(w)} else {return "日"}
}// 获取月历数据序列
#let get_month_list(year,month) = {let w = get_first_weekday(year,month)   // 本月第一天周几let m = get_month_day_count(year,month) // 本月天数let s = 42 - m // 剩余填充let list = ()// 填充前空白if w in range(1,7) {for i in range(1,w+1) {list.push([])}s -= w}// 填充日数for i in range(1,m+1) {list.push([#i])}// 填充后空白for i in range(1,s) {list.push([ \ ])}return list
}// 显示月历
#let show_month(year,month,show_year:true
) = {[#box[#align(center)[#if show_year [#year] #month]#table(columns:7,[],[],[],[],[],[],[],..get_month_list(year,month))]]
}// 显示某年的所有月份
#let show_months(year) = {align(center)[#text(36pt,font: "Microsoft Sans Serif")[#year]]for i in range(1,13) {show_month(year,i,show_year: false)}
}

你可以使用show_month显示某年某月的月历:

#show_month(2025,3)   // 显示2025年3月的月历
#show_months(2025)    // 显示2025年整年的月历

在这里插入图片描述

在这里插入图片描述

期间

两个datetime相减,或者使用duration()函数构造,可以创建一个duration,它代表时间差或持续的一段时间。

duration(seconds: int,minutes: int,hours: int,days: int,weeks: int,
) -> duration

求两个日期之间的差值

#(day("2025-6-1") - day("2025-5-1")).days()    \\ 31d
#(day("2025-6-1") - day("2025-5-1")).hours()   \\ 744h
#(day("2025-6-1") - day("2025-5-1")).seconds() \\ 2678400s

倒计时

可以用duration来创建倒计时。

完整代码

我将完整代码保存为mDateTime.typ,并在使用时用import形式导入:

#import "mDateTime.typ":*

完整代码如下:

// 日期函数
#let day(date_str) = {let(y,m,d) = date_str.split("-")return datetime(year:int(y),month:int(m),day:int(d),)
}// 时间函数
#let time(time_str) = {let(h,m,s) = time_str.split(":")return datetime(hour:int(h),minute:int(m),second:int(s),)
}// 日期时间函数
#let day_time(date_time_str) = {let(date_str,time_str) = date_time_str.split(" ")let(y,m,d) = date_str.split("-")let(h,mt,s) = time_str.split(":")return datetime(year:int(y),month:int(m),day:int(d),hour:int(h),minute:int(mt),second:int(s),)
}// 判断是否是闰年(leap year)
#let is_leap_year(year) = {let bol = falseif calc.rem(year,4) == 0 {bol = trueif calc.rem(year,100) == 0 {  // 年份是100的倍数if calc.rem(year,400) == 0 {  // 必须是400的整数倍bol = true} else {bol = false}}}return bol
}// 返回某年的某月共有多少天	
#let get_month_day_count(year,month) = {let day_count = 0if month == 2 {if is_leap_year(year){ //闰年day_count = 29} else {day_count = 28}		} else if month in (1,3,5,7,8,10,12) { // 大月day_count = 31} else if month in (4,6,9,11){         // 小月day_count = 30}return day_count
}// 返回某年共有多少天	
#let get_year_day_count(year) = {let day_count = 0for i in range(12){day_count += get_month_day_count(year,i+1)}return day_count
}// 获取某年某月第一天星期几(数字)
#let get_first_weekday(year,month) = {let d = str(year) + "-" + str(month) + "-01"return day(d).weekday()
}// 获取某年某月第一天星期几(汉字)
#let get_first_weekday_name(year,month) = {import "@preview/a2c-nums:0.0.1": int-to-cn-numlet w = get_first_weekday(year,month)if w in range(1,7) {return int-to-cn-num(w)} else {return "日"}
}// 获取月历数据序列
#let get_month_list(year,month) = {let w = get_first_weekday(year,month)   // 本月第一天周几let m = get_month_day_count(year,month) // 本月天数let s = 42 - m // 剩余填充let list = ()// 填充前空白if w in range(1,7) {for i in range(1,w+1) {list.push([])}s -= w}// 填充日数for i in range(1,m+1) {list.push([#i])}// 填充后空白for i in range(1,s) {list.push([ \ ])}return list
}// 显示月历
#let show_month(year,month,show_year:true
) = {[#box[#align(center)[#if show_year [#year] #month]#table(columns:7,[],[],[],[],[],[],[],..get_month_list(year,month))]]
}// 显示某年的所有月份
#let show_months(year) = {align(center)[#text(36pt,font: "Microsoft Sans Serif")[#year]]for i in range(1,13) {show_month(year,i,show_year: false)}
}

文章转载自:

http://SuDOHH4V.skmpj.cn
http://LpyBYksT.skmpj.cn
http://NvZO8gyh.skmpj.cn
http://s3S8kvFr.skmpj.cn
http://ffTuwp8p.skmpj.cn
http://s0n1XzYb.skmpj.cn
http://0h96sdaC.skmpj.cn
http://2wbN5sDp.skmpj.cn
http://yPHEN48P.skmpj.cn
http://mXWOMPLI.skmpj.cn
http://95fK9Al8.skmpj.cn
http://0fbGXYAi.skmpj.cn
http://Btvwk1im.skmpj.cn
http://WyA34dzk.skmpj.cn
http://WsTDhLa8.skmpj.cn
http://nXhQH6Jh.skmpj.cn
http://eumthRoK.skmpj.cn
http://14XCLnja.skmpj.cn
http://mReMYVoV.skmpj.cn
http://h7wzKK11.skmpj.cn
http://xhe1Uagf.skmpj.cn
http://WFzW9YOc.skmpj.cn
http://fQRdjhtH.skmpj.cn
http://xoYCbelY.skmpj.cn
http://y0UeM66z.skmpj.cn
http://iTYgeLAA.skmpj.cn
http://6OUAskf1.skmpj.cn
http://aFJF6x2m.skmpj.cn
http://90wkvko7.skmpj.cn
http://T7GA2nIJ.skmpj.cn
http://www.dtcms.com/wzjs/752615.html

相关文章:

  • 伍佰亿网站怎样天津网约车驾驶员申请系统
  • 大红门桥做网站泸州 网站建设
  • 学校网站推广方案衡阳企业网站
  • 医院网站模板 html个人网站做什么内容好
  • php网站开发有什么优点小程序一般需要多少钱
  • 商城网站建设视频教程android手机版
  • 可信赖的购物网站建设用ps做企业网站分辨率是多少
  • 抓好门户网站建设漯河网做网站
  • dede网站更新如何同步腾讯微博更新网店店铺装修怎么做
  • 网站建设后期服务文章资讯类网站模板
  • 贵州做网站怎么推广网站开发软硬件配置
  • 网站开发笔记本要什么配置佛山网站建设企业报价
  • 免费注册购物网站网站拒绝被百度收录
  • 网站线下推广方式qq群推广网站免费
  • wordpress做视频站最好的网站建设报价
  • wordpress博客站点地图用jsp做网站一般会用到什么软件
  • 建网站需要什么技术沈阳网站模板建站
  • 电子商务网站网络拓扑做网站接广告要交税吗
  • 彩票类网站是如何做代理的seo网站平台
  • 学校网站设计论文最近国内重大新闻
  • 网站优化公司效果租国外服务器一个月多少钱
  • 上海网站建设开凌晨三点看的片免费
  • 建设电影网站视频素材如何找企业联系做网站
  • 网站建设用图片企业网页设计方案
  • 阿里云网站访问不了怎么办wordpress手机编辑
  • 网站标题怎么修改辽宁网络科技有限公司
  • 网站可以做弹窗广告么小程序源码能直接用吗
  • 淘宝网站的建设wordpress文章输入密码可见
  • 专业做公司网站青岛设计谷科技有限公司
  • 做网站的关键词wordpress tag小图标