希伯来语/犹太人日期转换

Luc*_*cas 5 c# air actionscript actionscript-3

我想将格里高利日期(我们通常在美国使用的日期)转换为希伯来语(犹太日期).我正在使用Adobe Flash CS5作为Adobe AIR应用程序.是否有一些已在ActionScript 3.0上开发的代码?

经过一段时间的研究,我发现在Visual Studio上创建的Windows应用程序具有内置函数以满足这种需求.有没有办法在Windows窗体或AIR上调用某个函数?

最好的,卢卡斯

小智 5

不幸的是,在搜索后,我找不到任何图书馆或任何东西在闪光灯中获得希伯来日期.但是,我找到了这个网站:

http://www.hebcal.com/converter/?gd=21&gm=6&gy=2011&g2h=Convert+Gregorian+to+Hebrew+date

似乎hebcal.com接受URL中GET变量中的格里高利日期,并返回正确的希伯来日期.因此,理论上您可以使用flash URLLoader加载由当前格雷戈里日期组成的URL,然后解析请求响应中的HTML数据以提取希伯来日期.

我继续使用网络服务hebcal.com找出了如何为你做这件事.以下是完成此任务的actionscript 3代码:

import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;

var currentDate:Date = new Date();

var dateLoader:URLLoader = new URLLoader();

var dateQueryURL:String = 'http://www.hebcal.com/converter/?gd=' + currentDate.date + '&gm=' + (currentDate.month+1)  + '&gy=' + currentDate.fullYear + '&g2h=Convert+Gregorian+to+Hebrew+date';

trace(dateQueryURL);

dateLoader.addEventListener(Event.COMPLETE, onDateConverted);

dateLoader.load(new URLRequest(dateQueryURL));

var hebrewDateSearchRegexp:RegExp = /([a-zA-Z0-9 ,]{1,30})(?=<\/b)/gixm;

function onDateConverted(e:Event):void
{
    var queryResult:String = e.currentTarget.data as String;
    var hebrewDate:String;
    var dateArr:Array = queryResult.match(hebrewDateSearchRegexp);

    if(dateArr && dateArr.length > 0){
        //The date was found in the string
        hebrewDate = dateArr[0];
        trace("The current Hebrew date is: " + hebrewDate);
    }else{
        trace("Error retrieving current Hebrew date.");
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上我只使用一个正则表达式来查找/选择只包含希伯来日期的HTML部分.然后我使用string.match()提取它并在trace语句中输出它.

另请注意,使用currentDate.month,我必须将此值增加1,因为flash会将月份从0到11计算,而hebcal.com上的工具则从1-12计算.