Skip to content

QSCTech/school-cal

Repository files navigation

Go Report Card Build Status License: MIT Documentation

Example

using go mod

package main

import (
	"encoding/json"
	"fmt"
	"github.com/QSCTech/school-cal"
)

func main() {
	cal := schoolcal.NewCalendar(nil)
	data, _ := json.Marshal(cal.GetSchoolYears())
	fmt.Println(string(data))
}

Options

You can configure Calendar by delivering CalendarOption into NewCalendar

Data Sample

{
	"2015-2016": {
		// 日期(实际上是时间,为了支持半天调课)使用 ISO 8601 标准便于解析。
		// 2015年8月10日0时0分东8区。
		"start": "2015-08-10T00:00+08:00",
		// 到 end 为止,不包括 end 代表的这一天,即左闭右开区间的惯例。
		"end": "2016-08-01T00:00+08:00",
		"semesters": {
			// 学期见于校历表头和教务系统课程列表过滤器。
			// SM:Summer Mini,夏季短学期
			// AW:Autumn-Winter,秋冬长学期
			// Au:Autumn,秋季学期
			// Wi:Winter,冬季学期
			// WM:Winter Mini,冬季短学期(寒假)
			// SS:Spring-Summer,春夏学期
			// Sp:Spring,春季学期
			// Su:Summer,夏季学期
			// ST:Summer Tiny,夏季小学期
			"AW": {
				"start": "2015-09-14T00:00+08:00",
				"end": "2016-01-24T00:00+08:00",
				// 当前学期是否从第 0 周开始,对排课算法有影响。
				"startsWithWeekZero": false
			}
			// ...
		},
		"holidays": [
			{
				// 不上课即视作放假,校历是为手机站排课设计。
				"name": "春学期考试周",
				"start": "2016-04-23T00:00+08:00",
				// 左闭右开,不包含这天,4-23~27。
				"end": "2016-04-28T00:00+08:00"
			}
			// ...
		],
		//"term" 字段表示需要调整的课程,可针对小学期调课,“无筛选” 为兼容以前的调课逻辑,不对课程学期进行筛选。
		// <option value="0">无筛选</option>
		// <option value="1">秋冬</option>
		// <option value="2">秋</option>
		// <option value="3">冬</option>
		// <option value="5">春夏</option>
		// <option value="6">春</option>
		// <option value="7">夏</option>    
		"adjustments": [
			{
				"term": "0",
				"name": "国庆节",
				"fromStart": "2015-10-03T00:00+08:00",
				// 左闭右开,10-3~4 => 10-6~7。
				"fromEnd": "2015-10-05T00:00+08:00",
				"toStart": "2015-10-06T00:00+08:00",
				"toEnd": "2015-10-08T00:00+08:00"
			},
			{
				"term": "3",
				"name": "仅补冬单学期课程,",
				"fromStart": "2017-11-24T00:00+08:00",
				"fromEnd": "2017-11-25T00:00+08:00",
				"toStart": "2017-11-20T00:00+08:00",
				"toEnd": "2017-11-21T00:00+08:00"
			}
			// ...
		],
		// 下面是形策调课或其他特殊课程调课有关内容
		"special": [
			{
				"code": "371E0010",
				// 课程编号
				"weekly": "odd",
				// 课程周期 all:每周,odd:单周,even:双周
				"date": "2016-09-12T00:00+08:00"
			},
			{
				”code": "371E0010",
				"weekly": "even",
				"date": "2016-09-12T00:00+08:00"
			}
		]
	}
}

About

获取 json 格式校历,go sdk

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages