21. 面向对象的LotusScript(四)之MonthConverter

本文介绍了一个实用的LotusScript类,用于在月份数字与名称间进行转换。该类包含GetName、GetFullName及GetNum三个方法,分别用于获取月份的缩写、全称和从名称转换为数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Notes开发中,有时会需要在月份的数字和名称之间相互转换。因为仅仅涉及到月份,用Format和DateValue函数并不方便。我们可以编写一个实用的类来解决这个问题。

%REM
	Class MonthConverter
	Description: Comments for Class
%END REM
Public Class MonthConverter
	Private num2Name As NArray
	Private num2FName As NArray
	Private name2Num As Dictionary
	Private fname2Num As Dictionary
	
	%REM
		Sub New
		Description: Comments for Sub
	%END REM
	Sub New()
		'initialize num2Fname
		Set me.num2FName=New NArray(11)
		With me.num2FName
			Call .Add("January")
			Call .Add("February")
			Call .Add("March")
			Call .Add("April")
			Call .Add("May")
			Call .Add("June")
			Call .Add("July")
			Call .Add("August")
			Call .Add("September")
			Call .Add("October")
			Call .Add("November")
			Call .Add("December")
		End With
		'initialize num2Name
		Set me.num2Name=New NArray(11)
		Dim i As Integer 
		For i=0 To 11
			Call me.num2Name.Add(Left(me.num2FName.Container(i), 3))
		Next
		'initialize fname2Num
		Set me.fname2Num=New Dictionary()
		For i=0 To 11
			Call me.fname2Num.Add(CStr(me.num2FName.Container(i)), i)
		Next
		'initialize name2Num
		Set me.name2Num=New Dictionary()
		For i=0 To 11
			Call me.name2Num.Add(CStr(me.num2Name.Container(i)), i)
		Next
	End Sub
	
	%REM
		Function GetName
		Description: Comments for Function
	%END REM
	Public Function GetName(num As Integer) As String
		If num<1 Or num>12 Then
			Exit Function 
		End If
		me.GetName=me.num2Name.Container(num-1)
	End Function
	
	%REM
		Function GetFullName
		Description: Comments for Function
	%END REM
	Public Function GetFullName(num As Integer) As String
		If num<1 Or num>12 Then
			Exit Function 
		End If
		me.GetFullName=me.num2FName.Container(num-1)
	End Function
	
	%REM
		Function GetNum
		Description: Comments for Function
	%END REM
	Public Function GetNum(monthName As String) As Integer
		Dim num
		num=me.name2Num.Item(monthName)
		If IsEmpty(num) Then
			num=me.fname2Num.Item(monthName)
		End If
		If Not IsEmpty(num) Then
			me.GetNum=num
		End If
	End Function
End Class

GetName方法将月份数字转换成三字母缩写的月份名称。GetFullName方法将月份数字转换成英文月份名称。GetNum方法将月份名城转换成月份数字。其中用到的Dictionary和NArray在之前的面向对象的LotusScript的系列文章中都已经给出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值