我创建使用去lang.My结构的许可申请排序如下:在golang
Leave struct {
Leaveid int
Name string
EmployeeId string
Applieddate time.Time
Leavestatus string
}
处理,批准,拒绝,HRApproved,HrDenied,HrProcessing之间休假状况各不相同。
一般来说,假期排序顺序必须基于应用日期。
我必须先能够显示Processing和HRProcessing,以及其他状态类型。
我想是这样的
[
{
"Leaveid": 4,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T08:59:02.870882+08:00",
"Leavestatus": "HRProcessing"
},
{
"Leaveid": 1,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T07:30:01.679636+08:00",
"Leavestatus": "Processing"
},
{
"Leaveid": 3,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T07:00:02.870882+08:00",
"Leavestatus": "HRProcessing"
},
{
"Leaveid": 5,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T10:00:11.139189+08:00",
"Leavestatus": "Approved"
},
{
"Leaveid": 2,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T07:58:41.837666+08:00",
"Leavestatus": "HRApproved"
},
]
更新:这是我一直在使用某种包装
func (sortleave leaveDetails) Len() int {
return len(sortleave)
}
func (sortleave leaveDetails) Less(i, j int) bool {
if sortleave[i].Applieddate.After(sortleave[j].Applieddate) {
return true
}
if sortleave[i].Applieddate.Before(sortleave[j].Applieddate) {
return false
}
return sortleave[i].Leavestatus > sortleave[j].Leavestatus
}
func (sortleave leaveDetails) Swap(i, j int) {
sortleave[i], sortleave[j] = sortleave[j], sortleave[i]
}
输出完成:
[
{
"Leaveid": 2,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T08:59:45.139189+08:00",
"Leavestatus": "HRProcessing"
},
{
"Leaveid": 4,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T08:59:02.870882+08:00",
"Leavestatus": "HRApproved"
},
{
"Leaveid": 3,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-02T08:58:41.837666+08:00",
"Leavestatus": "Processing"
},
{
"Leaveid": 1,
"Name": "rajesh",
"EmployeeId": "rajesh",
"Applieddate": "2016-12-01T18:10:01.679636+08:00",
"Leavestatus": "Processing"
}
]
这里处理进入下来和HRApproved上涨。但这不是我想要的。请帮我解决这个问题。谢谢
你有什么尝试,你坚持什么部分?你看过sort std库包中的例子吗? – superfell
我已经尝试了排序包来做到这一点,但结果并不是我的预期。我会更新我做的。请纠正我,如果我错了。谢谢... –
您正在寻找哪种排序? – neclepsio